I usually do resize partitions on the fly like this (there might be typos in here, please use common sense
Copy the data to another partition: "cp -a /var /usr/var". Note that the -a switch is mandatory, otherwise you'll screw up everything
Unmount the partition (umount /var)
Remove the old mountpoint (rm -rf /var)
Link the new location to the old mountpoint (ln -s /usr/var /var): this way system does not even know that /var was gone.
Do the necessary resizing of the (unused) partition with "cfdisk", "fdisk" or whatever.
Mount the newly created partition to some other directory (mkdir /newvar;mount -t ext3 /dev/hdaX /newvar)
Copy the data to the new partition (cp -a /usr/var/* /newvar)
Unmount the new partition (umount /newvar)
Remove the symbolic link (rm /var)
Rename the new partition (mv /newvar /var)
Edit /etc/fstab and mount the new partition (mount /var)
Gosh... that seems quite complicated
. But I've moved all my partitions once or twice in above manner and I haven't experienced any problems so far. Actually once you get the idea this procedure is rather easy, even though by no means a perfect solution.
If you can, resize the partion on the fly without all this fuss. Just take backups with the "cp -a" first, just in case.