WinXP has low compatibility for applications made for prior releases of windows. Perhaps the creators of windows should have thought things through before making a mess that's what you get for rushing things I guess.
Ironically, the compatibility problems in Windows XP are there mostly because the creators of Windows
did think things through for a change. Earlier Windows was quite crappy code-wise (and new Windows still is, but about a magnitude less) and didn't enforce many constraints on us programmers, which meant we too could get away with crappy code that could destabilize the entire OS. The current compatibility issues (particularly with FF7/FF8) are the result of trying to run sloppy code in a more strict environment.
So one could argue that it's not really XP's fault, rather the damage was done long ago in allowing programmers to get away with crap code in the older Windows and is only now apparent in the better-written XP because people want and expect full compatibility between all Windows versions.
Now if you ask me, what's needed is a really
big new OS that quickly becomes standard (maybe Longhorn? probably not) where the developers have focused
only on OS stability and strict environment rules for us programmers, ignoring compatibility entirely. Then it would be shipped with a VirtualPC/VMware-like emulator which would run all the older programs in a safe, encapsulated environment (Windows tries to do this with old 16-bit programs etc.). As a transition help, you could also provide a small library allowing programs written for the new OS run (decently) on, say, Windows 2000 and up.
In a few years, almost all games and programs would be written for and compliant with a stable, expandable environment instead of (as now) for Windows XP where Microsoft is desperately trying to improve an OS where you need to leave everything as it is to maintain compatibility.