Here's the general order that I would do it:
Create a knoppix disk. You can do it without one, but it will make it easier.
Copy EVERYTHING to the 90 GB drive. You might not want to here it, but do this as root user from the console.
Resize or repartition your 70 GB drive.
Copy everything but /home back to your system (or reinstall SuSE).
Run the recovery function on SuSE's install CD (to get your boot loader back)
Modify your /etc/fstab to refer to your /home on the other drive.
Disclaimer: I sometimes don't know as much as I think I do. Use your own judgment. You may want to follow the advice of others here and get your data backed up first.
Knoppix is invaluable for this project. In fact, I would do most (or all) of the work from Knoppix. Knoppix is a live CD. It contains an entire distribution of debian linux that runs from the CD. It makes an excellent tool for working with your linux system (without your linux system in the way). You can get Knoppix from either www.knoppix.net
Once you have booted off of knoppix, look for qtparted. This is a graphical program for partitioning drives, much like partition magic. Make sure your new hard disk (I'm assuming primary slave: /dev/hdb) is formated With a linux style file system (ext3 and reiserfs are safe bets). Now open a root console (from the penguin menu) or switch to tty2-4.
Make sure you see hda1 and hdb1. If one of them does not exist, then create it with "mkdir hdb1". Now mount them for reading and writing.
mount /dev/hda1 /mnt/hda1
mount /dev/hdb1 /mnt /hdb1 -o rw
The -o rw is probably not needed. You will need to make sure it is in read/write mode though. If you had mounted the partitions from the KDE desktop, you will need to change it to read/write mode (right click on it and look for the option).
cp /mnt/hda1/* /mnt/hdb1 -R --preserve=all
This command should copy everything from your first drive onto your second. Undoubtedly this will take a while. The "-R" is for recursive; in other words, all the directories and everything in them. The "--preserve=all" should make sure that ownership of copies stays the same, that links remain links, etc. You would have problems otherwise. If you were to try this copy from Your running SuSE system, you would copy from /, and add a "-x" to the end. That would prevent coping stuff from proc and sysfs that you wouldn't need. Make sure that everything you need has been copied
Once that is done (and you have verified that your important files have been copied), then fire up qtparted again. If you clear up some space on the partition first, qtparted may be able to shrink your partition for you. If not, then delete the partition and create at least 2 new ones (an additional small fat32 partition is preferable for moving stuff from linux to windows 2000/XP. Linux can
, but shouldn't, write to an NTFS partition) (a small partition for /boot is also handy).
Now copy back everything (unless you intend to reinstall SuSE). Well, not everything. Obviously don't copy over the huge load of files that you wanted moved (remember to use --preserve=all).
Now you may want to rearrange your second drive a bit. Remember, if you want to treat it as your /home, then you will need it to be arranged that way. use the mv command to shift things around. I'd do something like:
mv * OldInstallation
mv * ../../
You should have the folders holding your users home directories at the top of /mnt/hdb1.
Now install Windows. Normally it is best to install Windows before Linux. The Windows installer will overwrite the MBR of the drive, making it impossible to boot anything Windows. Because of this, you will need to install your linux boot loader after Windows is installed. I don't recall exactly how to do this from the SuSE Installation CD, but it can be done. It can also be done from knoppix 3.7, but I think the SuSE CD will be easier.
If Windows isn't automatically added to the boot menu, then you will need to edit your /boot/grub/menu.lst . Post back if you need to (it isn't hard, but I don't feel like taking the time at the moment).
Last, but not least, modify your /etc/fstab. This file keeps track of which partitions get mounted where. Add something like this:
/dev/hdb1 /home reiserfs acl,user_xattr 1 2
(here reiserfs is assumed. If the partition is ext3, then use that instead.) (This line was copied from my SuSE fstab and modified slightly. I think this is what should be used.)
Boot your system and see what happens. The "df -h" command can be useful to see drive usage, and to tell which partitions are mounted where.
Post back here if I've left something unclear (or if you have trouble (inevitable