Определить, какая, извините, винда, проще простого. Если в юзерагенте встречается строка "Windows 5.0" - это 2000 винда, если "Windows 5.1" - это XP, "Windows 6.0" это виста, и "Windows 6.1" - это семёрка. Интернет эксплорер подписывается буковками MSIE и цифирками с номером версии.
А как быть с огромным зоопарком разных дистрибутивов линукса, которые хочется дифференцировать меж собой, а не сваливать в кучу с пометкой "линукс"? Самые распространённые дистрибутивы гордо подписыватся в юзерагенте, кроме арча, который не подписывается. Ubuntu у меня всегда под рукой, Arch тоже неподалёку, Mandriva 2010.0, openSUSE 11.2 и LinuxMint 8 я установил на виртуальные машины и посмотрел, что они прописывают в юзерагент фаерфокса, Fedora 12 с первого раза у меня не установилась, я и забил, Gentoo ставить вообще не стал.
Если у вас, дорогие друзья, есть примеры юзерагентов для разных дистрибутивов линукса, а также для разных *BSD и макосей, то пишите, буду рад :)

Линукс Минт. Зелёная убунта для девочек.

Мандрива, бесплатный вариант. При установке понимает, что ставится на виртуалбокс, и после установки сразу доступна интеграция мыши.

Опенсюзя. Тоже понимает, что ставится на виртуалбокс, и, как я с удивлением обнаружил, интеграция указателя мыши работает уже во время установки.