I think Win32::GetOSName() does not support 2008 yet and you need to keep Win32 recent for that since Win32::GetOSName() also (like Sys::Info) uses hard coded names and checks the OS version. The manual way is to check Major & Minor from Win32::GetOSVersion()
Both Win32::GetOSName and Sys::Info return "WinVista", not "Win2008".
The only way I've been able to determine if the system I'm on is Windows 2008 is by running that really long script using Win32::OLE in the example at the top of the thread.
I guess I'll just stick with that one for the time being. Thank you to all who replied!!! Mark