Strange, the only part I see that checks the OS is the following line, and it should work fine.

 Code:
Case InStr(@ProductType,"Windows XP) OR InStr(@ProductType,"Windows 2000 Professional") Or InStr(@ProductType,"Windows 7")


Do you know what the trouble machines are actually showing for @ProductType? Try adding the following and testing...

 Code:
$nul = MessageBox(@ProductType,"OS",0)