One of the most common problems with crashing software is that many programs share modules, known as Dynamic Link Libraries (DLL’s) to keep their software modular and to save on disk space. With Hard Drive prices dramatically falling in the last few years, Microsoft is revisiting this strategy.
The big problem stems from the process where one program is installed with a DLL, and a second program is installed using the same DLL, but a newer version. The old DLL is overwritten, and the first program which was not written or tested with the new DLL may crash.
Still realizing that modern software development is modular and object oriented and requires these shared components, Windows Server 2003 and version 1.1 of .Net will keep all versions of DLL’s that are in use. Hopefully this filters down to the desktop OS soon!