I can offer some advice but can assume no liability (of course).
Last time I moved a system partition to a new drive I used partition magic I think. I'd probably use
gparted now.
1) Back up all your critical data on CD or DVD or tape or something.
2) Download the gparted live disk and burn it to a cd/dvd. Leave it in the drive.
3) Shut down, Make sure all power sources are removed. (disconnect everything from the case) Put both hard disks in the system. (setting master/slave/single jumpers as needed - if not master on independent channels then set the orig as master and new as slave for the copy.)
4) Boot from the gparted live cd, it should start the partition editor automatically (eventually). Use it to copy the main partition from the old disk to the new disk. Then resize the copy to fill about 1/2 to 3/4 of the drive (leaving room for a data partition) then create a data partition in the remaining space. (probably ntfs, primary). Mark the copied partition active/bootable. All of these actions should display and queue, then you apply the changes. It will take time. Maybe lots of time. When it is complete shutdown the system from the live cd menus.
5) again remove all power sources, and since your old drive is only 20 GB it is probably not worth leaving it in the system, remove it and set the new drive jumpers to master/single secure everything, reconnect and boot up.
6) If the system does not boot as expected, boot from the gparted live cd and make sure the new(copied) system partition is marked as active and bootable. If that does not do it, then use your OS install disk to boot to a command prompt and use fixmbr at the recover console (assuming windows XP here - Vista - use the WiindowsRE boot disk).
7) If all else fails, put the old disk back in like it was, by itself, boot up, chew me out, and look for a better solution!
I think that should cover it, but it has been a while. Please don't implement this procedure until someone else comments on any errors/omissions/better options...
note: this procedure assumes you do not currently have applications installed to drives other than c: currently. If so, don't create the data partition but duplicate the existing drive letter arrangement by either filling the new disk with the old system disk or copying and removing other partitions/drives as needed.