I’d do it this way:
Install the new harddrive in the old PC as slave.
Format the new drive with ext3 or Reiserfs.
Use cp with --preserve=all to copy everything to the new drive.
Install the new drive back into the new PC - remember to set it back to master.
Boot from my Linux CD, and flip over to a console.
Mount the new hard disk as root.
Run Lilo to get the boot sector done right.
Remove CD, reboot.
All happy. No software to buy, no funky cables - but ya gotta be using a real OS instead of that kiddie crap.