Okay, Google gave this thread the top billing in my search for a solution to the same issue, and other forums even pointed people to this thread as being helpful in solving this problem.  But, I don't think it is all that helpful, and even lead me down a dead-end with the idea of turning off the embedded manifest.

If I redistributed my EXE without an embedded manifest, I got an error that I was attempting access the C-runtime incorrectly.

So, for anyone looking for help with this problem, you should read the page on MSDN titled "VC++ How To: Deploy using XCopy":

http://msdn2.microsoft.com/en-us/library/ms235291.aspx

To summarize, if you want to redistribute an app with a dependency on the C-runtime, ATL, or MFC without getting into more advanced installers, you can either run the program vcredist_x86.exe, which installs all VC++ 8 redistributable DLLs in the machine's system directory, or you can copy individual directories from "Microsoft Visual Studio 8\VC\redist\x86" (e.g. Microsoft.VC80.CRT) and place these directories beside your application.

In the old world you could just dropped individual DLLs beside the application.  Now you need the entire "assembly" including its manifest.

Finally, the page that lead me to this page, titled "Redistributing Visual C++ Files" may also be of use:

http://msdn2.microsoft.com/en-us/library/ms235299.aspx