Now, after reading this, are you replacing your old harddrive with this one, or are you gonna add it as a slave HD so you can use both?
You can easily swap programs from hd to hd, but some require registry entries in order to work fine, so if you do shift their location, you might have to reinstall a few from their installation programs unless you know how to fiddle with the registry (I suggest learning a bit, it's not too hard, use the search function, and see what you can see about your settings).
Ok, after reading it all over, I see what you wanna do. You'll probably want to install the 20GB partition as the slave, and the 10GB partition as the master (this doesn't actually have any preformance problems, it's just so your comp knows which is the first and which is the 2nd harddrive on your IDE cable). Now, this is a little tricky, cause windows pretty much requires the first windows OS to be installed on the C:. I've never gotten it to work when on the D: without one already existing on the c:. So what you should do is partition your 2nd 20GB HD into 2 parts.
For now, you'll just want to setup the huger chunk, I say make it 16-17GB, and set its drive letter to either D: or E: or whatever drive letter you have free. This partition will be where you store your games n' apps n' documents. The smaller partition that will come of the 2nd HD will be where you install windows xp later.
Then shift as many (if not all) programs to the D: (or whatever drive letter you named it to) HD after formatting it to either fat32 or ntfs (you'll probably want ntfs). Make sure the partition's at least 19GB big, or else you should try again. I forgot to check my 80GB partition after formatting.. so I'm losing 20GB's off it. which is a ****-me-off. big time. Now you may be thinking "why have 2 partitions for my windows xp setup? well dude, it's safer. Let's say your windows xp partition is dead, Kaput, and you need to reformat it. well, you've already got everything on a different partition eh? so reformatting the C: won't be so bad. Just back up some stuff that might've saved to the "my documents" folder or any programs that refused to install on the D: (or whatever letter you used).
Now, here comes the tricky part. You'll need to use your windows xp cd during boot to delete the C: partition (warning! after this step, there's no turning back, so make sure you've backed up everything to the D: (or whatever letter) partition you've made.
After that, look for the small partition, the 3-4GB one, and create that as the new C: partition. The free space for the 10GB partition you said you wanted to use for linux, so don't turn that into a fat32 or ntfs partition or you probably won't be able to use it for linux without reformatting it again.
Then? install windows onto the new 3-4GB c: partition, and there, you now have your windows xp os partition, and a 2nd ntfs partition to store all your important stuff. that wasn't too bad now was it?
I'm pretty sure since you use linux you can install it just fine. You probably diddn't need my full step-by-step thing, but I figure I've got time to burn, so meh.