Programs compiled in Visual Studio C++ may have a number of dynamic link library dependencies. The dependency is specific down to the version of a library, so the Side by Side (SXS) feature allows Windows to manage having multiple versions of a library available for programs to link to. These libraries are stored at C:\Windows\winsxs (so you can go have a look and see if you have a particular library needed).
Usually, programs so compiled have a manifest file of what dependencies is needed embedded in the binary of the compiled program. You can ask Visual Studio to compile with the manifest file split out as a separate XML file by, in Visual Studio, going to Project > Properties > Manifest Tool > Input and Output, and setting the Embed Manifest option to No. Then compile the program, and opening the XML file, your_program_name.exe.manifest, in any text editor. It'll tell you which library you need, and which version.
For me, it turns out I needed two different versions of both the C/C++ standard libraries, and the MFC libraries. After much searching, I found where you can download them from Microsoft:
- VS2005 SP1 version of Visual C++ Redistributable Package is available for download
- Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update
Finally, there is some relevant discussion here.