First, under Windows, you need to defragment your drive, then run scandisk. I haven't used windows in ages, but these are under 'system utilities' or something like that.
Then use partition magic or whatever.
If you're looking to dual boot Windows and Linux, may I suggest you try Mandrake Linux? It will create new partitions and do ALL of the boot configuration for you. It's perfect for splitting up a Windows drive. Very, very easy.