If your program exhibits the subject behavior, you may have an older or mismatched version of a DLL in your path.
If the wrong version was in %SystemRoot% and the correct version was in %SystemRoot%\System32, the program might work for a first time user, but would fail on subsequent log ons.
The fix is to locate and rename the older DLL.
NOTE: This issue has occurred with duplicate files from older versions of Microsoft C++ installed in different folders.
NOTE: This error has occurred with a third-party program that hooked itself into the Explorer.exe shell.