The whole 40GB drive is Suse right? How many partitions do you have set up on it? If you have at least 2 you should be fine. Say you've got 20 GB and another 20 GB (not taking into account swap space--you'll need swap too):
hda1 = / = 20GB
hda2 = /home = 20GB
This is a purely hypothetical partition setup. Chances are, your /home directory doesn't take up more than a couple of GB and neither does your root (at least not enough to make up 20 GB of data). If you've got LOTS of stuff on either partition, time to start burning those mp3's to CD.
If your combined total of information for both partitions is less than 20 GB, you could move or copy all your info from your /home partition to your / partition. Then, you could run fdisk
and then delete your second partition (/home) and create 2 more partitions of 10 GB each. Now, you've got your partition table as follows:
hda1 = / = 20GB
hda2 = /partition2 = 10GB
hda3 = /partition3 = 10GB
You can name these partitions whatever you want. Afterwards, you could probably take all that stuff that was in your former /home partition, and move or copy it back to /partition3. You could then rename that partition to /home if you want. This is one way to do it. You could also try to resize / partition to 30 GB afterwards if you want. I would think it would be easier to increase the size of a partition rather than shrink it down. If you were looking to take a single partition drive and shrink its size from 40GB to 30GB then create a new parition of only 10GB, I don't think I'll be of much use as I've never done that before. Hopefully another here will be able to help you out with that. Good luck!