1. plug the new drive as slave.
2. boot linux (still from old drive).
3. make exactly the same first partition (I mean size, for Windows. your Windows partition is first right?) - f.e. using parted or qtparted (GUI).
4. use dd to copy over old Windows partition to new (blank) partition.
(now you have new disk with only ten GB Windows partition.)
5. boot to old Windows. run paritition magic and resize your new Windows partition to size you need (40GB?)
6. still from partition magic (or you can do it from old Linux partition - it does not matter) prepare new partitions for Linux (80gb right?).
7. boot to old Linux, copy entire tree (exept /dev, /sys and /proc - they are not realy real filesystems) to new partition/s (you must mount them, when copying files remember to preserve their attributes).
8. update /etc/fstab and /boot/grub/grub.conf on new Linux partition to match new layout (if something changed)
9. install grub to slave drive MBR.
10. take old drive out and plug new one as master.
11. boot - you should have new system...
you can safely experiment such way till you succeed (you always have a copy on old drive if something goes wrong).
take a look here also.