Is the new drive going to be a Seagate by any chance (or does the old one happen to be a Seagate)? If so, they have disk tools on a bootable CD that will help you with setting up the partitions and doing the transfer. It used to be called DiscWizard, but they seem to have a new tool called Migrate Easy
in it's place. I was very impressed with DiscWizard. If you have multiple partitions on your current drive, it only copies and sets the C:\ drive, but copying over any other partitions is a simple drag and drop operation after you boot to the new drive. It requires that at least one of the two disks be a Seagate.
I've also used Miray HDClone (Free Edition)
to migrate over to a new disk. It used to require that the new disk be larger than the old (and it may still require it). HDClone worked, but it was very, very slow. The for-sale versions are advertised as being much faster.
Both of these would assume you move to the new 500 GB as the boot drive. (You could use the 120 GB drive as the slave drive until you get a second 500 GB one, too.) There's also something to be said about having your critical files on the newest drive in the system. Older drives tend to die more than new ones (but that's not strictly true as I found out last year). Both of these also take care of setting the active partition on the new boot disk as well.
In general, the steps would be:[list=1][*]Set the new 500 GB disk to it's Slave setting (which is usually a jumper near the IDE and power connectors). (If the current boot drive is set using the Cable Select setting, you may have to set it to its Master setting. I've personally not had good luck with Cable Select working out for me. I like to set them the old-fashioned way.)
[*]Install the 500 GB drive.
[*]Run the software to copy over the OS partition. Go out to lunch or take a nap.
[*]Shut down the system. Reverse the jumpers on the drives to make the Slave (new 500 GB drive) the new Master drive. Set the old (120 GB drive) Master as the new Slave. However, do not
connect the old 120 GB drive just yet.
[*]Power up the first time and let it boot into Windows with only
the new drive hooked up. Let Windows discover any new partitions and create any others you would like to have. This may take a couple reboots. Do this before reconnecting the old drive. This lets Windows make the drive letter assignments in the correct order.
[*]Hook up the old 120 GB boot disk as the Slave drive. Copy over anything that the migration software didn't do for you. (If you only had one partition on the 120 GB drive, there won't be anything to copy.)[/list=1]
That should be it.
As far as upgrading to Windows XP Pro and when to do it, depending on what you have now, you may want to do that first. Some older OSs probably do not handle 500 GB drives. Windows XP Home would, so it wouldn't matter if you upgrade before or after adding the new drive. Windows 98 .. I don't really know. I seem to recall FAT32 having a 1 or 2 TB limit, but I don't know. (That's "TB" not "GB".)