Windows CE 5.0 never runs on top of a desktop version of Windows. Perhaps you mean that Windows CE 5.0 Platform Builder doesn't work? That doesn't surprise me because my own experience is that eMbedded Visual C++ 4.0 (which uses the same development shell and Platform Manager as CE 4.x and CE 5.0 Platform Builder) does not work at all. As for other applications not working, there are plenty of cases where applications have relied on unspecified behaviour in Windows APIs, either accidental misuse or deliberately using undocumented features. In both cases any change to the underlying implementation can and will break code. This is true of any new version of Windows - it's just that it's been a long time since Windows changed this much. Also, in the pursuit of better security, I suspect Microsoft have added a lot more parameter validation to APIs, meaning that things you could previously get away with don't work any more. If you're developing anything with Windows CE 5.0 Platform Builder you should be aware that an awful lot changes for Windows CE 6.0, and a lot of the undocumented features commonly used in application code will no longer work.
Stability. What an interesting concept. -- Chris Maunder