Because for years Microsoft built up a reputation for supporting old software and old APIs. Read Raymond Chen's Old New Thing blog for some anecdotes about the amazing lengths they would go internally to keep old software working. Like with the classic game Sim City they realized its code was buggy and using uninitialized memory, so the Windows team wrote a special case to detect when Sim City runs and emulate an older compatible memory allocator. It's not really clear if MS today cares about supporting software like they used to.