I recently upgraded my main gaming PC from Windows XP to Windows 7. So far I've had very few issues with games, but Battlefield 1942 was a problem. Running it normally, the game would crash on startup about half the time. Then when it started okay, it would crash between maps about 75% of the time. I tried enabling the various Windows compatibility modes, and that definitely reduced the number of crashes, but at a terrible cost: after a few minutes of play, the framerate would drop to the point where the game was unplayable, and the audio started to sound weird.
A bit of research led me to a fix provided by Grabbi on (the awesome) bfmods.com. The fix consists of a small file containing application compatibility settings specific to the main Battlefield 1942 executable, BF1942.EXE. Once installed, these compatibility tweaks adjust the way Windows runs BF42, and the result is far fewer crashes and smooth gameplay.
I've posted the fix in the "Files and links" section of this site, but here's a shortcut: http://jrc-core.com/files/BF1942-vista-win7-fix.rar