found this for Vista and it works for 7:
The problem is due to the fact that the file HP-41CX.lod, which the application is trying to update, is located in the C:\Program Files (x86)\V41 directory. Vista protects this directory from modification by applications not running with elevated privileges.
Vista causes V41 to create the file V41TEMP.lod in the directory C:\Users\<profileName>\AppData\Local\VirtualStore\Program Files (x86)\V41, where <profileName> is the profile directory name of the user currently logged on. Presumably V41 is attempting to create this file in the protected directory C:\Program Files (x86)\V41, and Vista is fooling it by redirecting this file writing activity to the VirtualStore directory.
It is possible to complete the fake out of V41 by manually copying the three original .lod files (HP-41C.lod, HP-41CV.lod, and HP-41CX.lod) to C:\Users\<profileName>\AppData\Local\VirtualStore\Program Files (x86)\V41. It is important to also delete them from C:\Program Files (x86)\V41.
With the three .lod files moved, V41 works normally, produces no error messages on exit, and remembers the calculator state.