We had a report, a while back, of the MapAndLoad API returning an "invalid image" error. Numit_or tracked it down to the "version number" that Alink was inserting into the header. He patched Alink so it spat out an "acceptable" version number. The patched Alink can be found in the "files" section of the "win32-nasm-users" Yahoo group (and probably somewhere on his site).
Where you're using VS, I suppose you're using their linker, not Alink.. but that's the only thing I can think of...
Let us know if you track down what the problem is.
(FWIW, Linux is a "moving target" too, but we have source code, so we can sometimes figure out what they did to us...)
Best,
Frank