, AndyC wrote

developers get tiered version checks wrong, because it's just too easy to get wrong. 

Which is why Microsoft invented VerifyVersionInfo:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms725492(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library/windows/desktop/ms725492(v=vs.85).aspx

Sadly it's more complicated and less well named than GetVersion and GetVersionEx, so it tends not to get used by the applications that are getting it wrong Sad