I've wondered this for a while. All I can find on Google are results for how to USE compatibility mode.. ..what does the compatibility mode actually DO? By selecting Windows 95, or Windows ME etc, what does Windows 'change' or 'simulate' in order to get the program to run?
As far as I can remember, when you choose compatability mode (assuming your're talking about XP), windows references older 16-bit dlls etc taken from 95, 98 etc instead of using the newer 32-bit ones from XP. This of course is not very reliable as it makes no account for drivers In Windows 7 however, if you run an app in XP compatability mode - windows actually fires up an instance of XP in a virtual machine! As well as checking for and installing XP drivers for your system.
What ChiefPPP said is right, but the compatibility mode also masks the identity of the OS. For example, when Windows 95 was just released some badly-coded installers detected the OS and only let the program install if it was W95, which obviously can cause troubles in later versions. Using compatibility mode, the installer will detect Windows 95 as the OS and proceed with the installation.
Ah, thanks for the explanation! I've heard about Windows 7s virtual mode..I got the impression that you needed a seperate Windows XP license to use this, am I wrong? Is it installed and usable by default? Great news if that it a yes!
AFAIK you don't need a separate XP license, Windows 7's license covers it. It doesn't come installed but you can find it easily in the Programs and Features section of the Control Panel or in the Microsoft website. Remember that you need a processor that handles hardware virtualization (here's a list of AMD-V or Intel VT-X capable CPUs) to use XP mode.
I like to think about XP Mode as an Operating System inside an Operating System. It always clears things up when discussing it with friends.
Compatibility mode has never helped me at all. Except for launching the occasional program on Vista's release. Because Vista used to be utterly digusting.