Oh it happens, for instance a windows 95 compatible game is most likely not to work on an Windows XP or Higher
Actually, they have very seldom, if ever, broken something between versions. The reason games/programs stop working is because they were programmed wrong. If a function is undocumented then don't use it. if a certain behaviour, or memory address seems to contain something in one version of windows it's probably going ot change in the next version.
A prime example is copying window structures; MS has never documented the layout of the window class data; instead they provide functions and messages, which work just as well.
Nonetheless, some clever programmers determine, perhaps by analyzing memory, that a window handle is really a memory pointer to that window structure, and that, if properly defined, they can copy it and view it.
the problem is, the layout is undocumented; the fact that, for example, the windows top and left position occur in a certain order in say windows 95 or windows 3.1 is no guarantee that it will remain the same in future versions.
this sort of thing is done all over the place; and almost every time, there is a simple function that performs what the coder wrote 3 pages of memory access and manipulation code, and is supported to work in future operating systems.
Now there is no denying that MS changes the inner architecture immensely, and certain programs, like debuggers, might be affected, but nearly 99% of all programs written to conform to the Windows API documentation will work perfectly fine in future versions.