Gandalf is around.
Most hdd manufacturers have free downloadable utilities to make the new hdd a bootable copy of the old bootable hard disk. (Don't confuse it with drive overlay software which you don't want). Search for it on the hdd website.
Just remember that although the existing 20GB hdd has 98 on it, the bootsector is now an XP (NT-based) bootsector. The new 120GB should also have an XP bootsector. The utility may or may not need this info from you, but if it does, make sure you say it's XP.
Otherwise software such as Drive Image or Ghost should do what you want.
For freeware, xxcopy can clone the disk for you to the new hdd click here but it cannot reproduce an XP boot sector. You can later use the XP CD to repair the boot sector.
After the cloning operation (assuming it also creates an XP bootsector on the 120GB disk), connect the 120GB disk as primary master, XP 40GB hdd as before, and leave the 20GB disk disconnected. This way, the existing boot files copied over to the new disk will continue to work and there's no need to change the boot files.
Whichever way you go, you should back up your boot files first. The following method does it, and creates a bootable floppy at the same time.
Load XP (you must do this in XP itself, not 98). Insert floppy, right click drive A and select Format. Just click Start and do NOT tick any of the option boxes. You must format the floppy even if it's brand new. After formatting, copy from the C drive the following 4 files to the floppy: ntldr, ntdetect.com, boot.ini, bootsect.dos.
As long as the hdd configuration hasn't changed (i.e. 98 hdd as hard disk 0 and XP hdd as hard disk 1), you can boot up computer with this floppy (which bypasses the hard disk in the boot sequence), get the same OS selection screen, and load either OS.