Bereits über z.B. ein PING oder sogar das Verhalten beim TCP-Handhsake lässt sich anhand der Antwort meistens herausfinden oder zumindest eingrenzen, um welches OS und welche Version es sich handelt. AFAIK geht das sogar passiv. Das nennt sich 'fingerprinting' und neben nmap können das z.B. hping und p0f.
Mehr dazu:
http://en.wikipedia.org/wiki/TCP/IP_stack_fingerprinting
Edit: Aus einem reinen Portscan kann man nur bedingt etwas ablesen - außer vielleicht, ob es wahrscheinlich eine Variante von Windows, Linux oder einem speziellen Unix ist. Man könnte die Banner der laufenden Services auswerten, aber das ist dann mehr als nur ein Portscan und - genau so wie der Rest - keineswegs verlässlich richtig.
Und elbarto is'n Scriptkiddie *duck*