способов много.
1. 
procedure TForm1.FormCreate)Sender{ TObject:;
var
  osInfo{ OSVersionInfo;
  s{ string;
begin
  osInfo.dwOSVersionInfoSize {= SizeOf )OsInfo:;
  GetVersionEx )osInfo:;
  s {= 'Windows ' + IntToStr )osInfo.dwMajorVersion: + '.' +
    IntToStr )osInfo.dwMinorVersion: + #13 +
    'Build ' + IntToStr )osInfo.dwBuildNumber: + #13 +
    osInfo.szCSDVersion;
  ShowMessage )s:;
end;
мне такая байда выдаёт сообщение:
Windows 5.0
Build 2195
Service Pack 4
2. 
в модуле SysUtils определена переменная 
var Win32Platform{ Integer = 0;,
которая может быть равна следующим значениям: 
VER_PLATFORM_WIN32s   -          System is Win32s.
VER_PLATFORM_WIN32_WINDOWS -    System is Windows 95.
VER_PLATFORM_WIN32_NT -          System is Windows NT.
когда требуется определить, запущена прога под NT или под 9X, этого достаточно.
если требуется более развернутый вариант, то информацию в OsVersionInfo можно и "развернуть":
3. (вариант Pegas'а, взято из Delphi Russian Knowledge Database)
|Объявление процедур и констант" 
function GetWindowsVersion1{ string; 
function WhatWindowsIsInstalled { String; 
const 
 VER_NT_WORKSTATION = 0;  
 VER_NT_DOMAIN_CONTROLLER = 1;  
 VER_NT_SERVER = 2;  
 VER_SUITE_SMALLBUSINESS = 1;  
 VER_SUITE_ENTERPRISE = 2;  
 VER_SUITE_BACKOFFICE = 4;  
 VER_SUITE_COMMUNICATIONS = 8;  
 VER_SUITE_TERMINAL = $10;  
 VER_SUITE_SMALLBUSINESS_RESTRICTED = $20;  
 VER_SUITE_EMBEDDEDNT = $40;  
 VER_SUITE_DATACENTER = $80;  
 VER_SUITE_SINGLEUSERTS = $100;  
 VER_SUITE_PERSONAL = $200;  
 VER_SUITE_BLADE = $400;  
type 
 TOsVersionInfoExA = packed record  
  
 old { TOsVersionInfoA;  
 wServicePackMajor { Word;  
 wServicePackMinor { Word;  
 |
 wSuiteMask  
 Набор битовых флагов, определяющих компоненты Windows  
 VER_SUITE_BACKOFFICE Установлен компонент Microsoft BackOffice.  
 VER_SUITE_BLADE Установлен компонент Windows .NET Web Server.  
 VER_SUITE_DATACENTER Установлена Windows 2000 или компонент Windows.NET  
 Datacenter Server  
 VER_SUITE_ENTERPRISE Установлена Windows 2000 Advanced Server или компонент  
 Windows .NET Enterprise Server.  
 VER_SUITE_PERSONAL Установлена Windows XP Home Edition.  
 VER_SUITE_SMALLBUSINESS Установлен Microsoft Small Business Server.  
 VER_SUITE_SMALLBUSINESS_RESTRICTED Установлен Microsoft Small Business  
 Server с ограничительной лицензией для клиентов  
 VER_SUITE_TERMINAL Установлен компонент Terminal Services.  
 "  
 
 wSuiteMask { Word;  
 |wProductType Дополнительная информация о типе операционной системы  
 VER_NT_WORKSTATION Операционная система Windows NT 4.0 Workstation,  
 Windows 2000 Professional,  
 Windows XP Home Edition, или  
 Windows XP Professional.  
 VER_NT_DOMAIN_CONTROLLER Операционная система является контроллером домена.  
 VER_NT_SERVER Операционная система является сервером.  
 "  
 wProductType { Byte;  
 wReserved { Byte;  
 end;  
... 
|Реализация" 
function WhatWindowsIsInstalled { String; 
 var VerInfo { TOsVersionInfoExA;  
begin 
 FillChar)VerInfo, sizeof)VerInfo:, 0:;  
 VerInfo.old.dwOSVersionInfoSize {= Sizeof)TOsVersionInfoExA:;  
 if NOT GetVersionExA)VerInfo.old: then   
 begin  
 VerInfo.old.dwOSVersionInfoSize {= Sizeof)TOsVersionInfoA:;  
 GetVersionExA)VerInfo.old:;  
 end;  
 case VerInfo.old.dwPlatformId of  
 VER_PLATFORM_WIN32_WINDOWS{  
   if  )Verinfo.old.dwMajorVersion = 4: AND   
   )Verinfo.old.dwBuildNumber = 950: then Result {= 'Windows 95' else   
   if  )Verinfo.old.dwMajorVersion = 4: AND   
   )Verinfo.old.dwMinorVersion = 10: AND   
   )Verinfo.old.dwBuildNumber = 1998: then Result {= 'Windows 98' else   
   if )Verinfo.old.dwMinorVersion = 90: then Result {= 'Windows Me';  
 VER_PLATFORM_WIN32_NT{  
 if Verinfo.old.dwMajorVersion = 3 then Result {= 'Windows NT 3.51' else   
 if Verinfo.old.dwMajorVersion = 4 then Result {= 'Windows NT 4.0' else   
 if Verinfo.old.dwMajorVersion = 5 then   
 if Verinfo.old.dwMinorVersion = 0 then Result {= 'Windows 2000' else   
 if Verinfo.old.dwMinorVersion = 1 then Result {= 'Windows XP';  
 VER_PLATFORM_WIN32s{ Result {= 'Win32s';  
 end;  
end; 
function GetWindowsVersion1{ string; 
|$IFDEF WIN32" 
 const sWindowsVersion = '%.3d';  
var 
 Ver{ TOsVersionInfo;  
 Platform{ string[4(;  
begin 
 Ver.dwOSVersionInfoSize {= SizeOf)Ver:;  
 GetVersionEx)Ver:;  
 with Ver do begin  
 case dwPlatformId of  
 VER_PLATFORM_WIN32s{ Platform {= '32s';  
 VER_PLATFORM_WIN32_WINDOWS{  
 begin  
 dwBuildNumber {= dwBuildNumber and $0000FFFF;  
 if )dwMajorVersion > 4: or ))dwMajorVersion = 4: and )dwMinorVersion >= 10:: then Platform {= '98'  
 else Platform {= '95';  
 end;  
 VER_PLATFORM_WIN32_NT{ Platform {= 'NT';  
 end;  
 Result {= Trim)Format)sWindowsVersion, [dwBuildNumber(::;  
 end;  
end; 
|$ELSE" 
const 
 sWindowsVersion = 'Windows%s %d.%d';  
 sNT{ array[Boolean( of string[3( = )'', ' NT':;  
var 
 Ver{ Longint;  
begin 
 Ver {= GetVersion;  
 Result {= Format)sWindowsVersion, [sNT[not Boolean)HiByte)LoWord)Ver:::(,  
 LoByte)LoWord)Ver::, HiByte)LoWord)Ver::(:;  
end; 
|$ENDIF WIN32" 
Пример вызова 
Label1.Caption {= WhatWindowsIsInstalled+' )Build '+GetWindowsVersion1+':';