Someone told me that it's caused by the poor color-management of Aero in Windows 7. Whatever the cause is, killing explorer.exe before playing the game will fix the problem completely. The best way to do this is to start the game and ALT+TAB out of it and start your task manager to kill it. After finishing the game you can just run it again by using the run command from the task manager (and naturally you want to execute "explorer.exe".
I actually made a .BAT file that automates this process, you simply need to extract dd256_fix.bat into your game .EXE folder and then rename it to have the same name as your game .EXE (in this case empires2.exe or age2_x1.exe). Now you have to start the game by running the .BAT file, instead of the game .EXE. It also restores the folder that you ran the game from. Get it from here