System Shock's problem with XP is that it's an old DOS game. The best answer to this is DOSbox, but DOSbox is tricky to use.
First, don't bother with a DOSbox Frontloader. I don't care what anyone says, for the sake of this guide, trash 'em. I spent hours trying to boot System Shock with those bastards, and once I ditched them I had the game running within minutes. Also, get a legit copy of the game. Unfortunately, I don't know how much of this guide applies to the floppy disk version, but I imagine you install the game the same way, then just run it off the C drive.
Download VDMSound, and install it as per the on screen instructions. You need this program to get sound in System Shock.
Next, put in your System Shock disc, and go into the INST folder. Right click on "initial.exe" and click "Run with VDMS".
Hit "Next >" and uncheck "Remember my settings", then "Finish"
Press Enter to select "English" and you should see this screen:
You have to use the arrow keys to make selections. Press Enter to go into the sound settings, and set BOTH the sound and digital cards. This is where VDMSound comes into play. System Shock only accepts the sound cards listed, so if you were to just run the installation without VDMSound and not having any of these cards, you'd get an error message that the card could not be detected. VDMSound "tricks" System Shock into thinking your current card is a Soundblaster 16. Although if you actually had a Soundblaster 16, you might not need this step, who knows.
Use either Soundblaster or Soundblaster 16 and have the computer auto-detect both, and just make sure you test both afterwards. When you test the music you should hear some really annoying "music" that sounds like water plunking to somebody randomly mashing an organ, and when you test the digital you should hear SHODAN taunting you. If you don't hear one or either, try the other card option, and if you're still not getting anything... I dunno, toy around with some of the other options. And make sure your speakers are on and you don't have Mute set.
Now hit "Return" and go down to "Choose Install Directory". System Shock will install by default to c:\sshock, but put in whatever you like. For the sake of this guide, let's use c:\Games\SSHOCK as the directory for our installation. If you choose something else, remembering and substituting the directory is on you. After making your choice, press enter and go back up to Install System Shock.
Now, boot up DOSbox, and type in the following:
For those with images turned off, or the totally DOS illiterate:
"mount d d:\ -t cdrom" and press Enter.
NOTE: If you have multiple CD-rom drives on your computer you may have to specify one. Type "intro cdrom" in DOSbox for details.
It should respond "MSCDEX installed. Drive D is mounted as CDRom d:\"
"mount c c:\games\sshock" or whatever the directory you installed System Shock to was, and press Enter.
It should respond "Drive C is mounted as local directory c:\games\sshock"
"c:" and press Enter.
And finally "cdshock," or "sshock" if you want the original version, will boot up the game.