I have a 100% working solution for C&C Zero Hour not working in Windows Vista.
When you first run Zero Hour, folder "Command and Conquer Generals Zero Hour Data" is generated at users Documents.
All you have to do is to empty that folder (some chrash logs) and copy Options.ini (if you have backup from XP) to that folder.
If you need one i can upload it... just say where.
Have tried all solutions posted earlier, none worked. This has been tested on Win Vista 32bit, should work on 64bit to.
P.S.: I have joined this forum just to share working solution in search for one (by google). Have a nice Zero Hour time in VISTA!