I'll give an example, one that I actually did a month ago. I moved my /var to a separate partition.
Shut down the computer.
Boot from a LiveCD.
Open Gparted and move the partitions around until you have a new partition. I'll call it sda3.
Click "apply" and let it do its thing. Depending on what you moved around, it may take a while.
Close Gparted.
Then get a root terminal.
Mount the root filesystem to /mnt. For this example, it's sda1.
Code:
mount /dev/sda1 /mnt
Once you've mounted it, rename the directory that you want to move.
Code:
mv /mnt/var /mnt/oldvar
Then create a new directory, and mount the partition there.
Copy everything from oldvar to newvar, making sure to keep permissions. I used rsync, but I think you can just use cp if you want to.
Code:
rsync -av /mnt/oldvar/ /mnt/newvar/
Note that you MUST include the trailing / on both paths. Rsync is really picky about that.
Once that's done, you can unmount the new partition
Then delete both of the directories
Code:
rm -rf /mnt/oldvar/ /mnt/newvar
Then create the directory to mount it to
Then edit your fstab (/mnt/etc/fstab) and add a line for the new partition. For the example I'm using, I would add a line like this:
Code:
/dev/sda3 /var ext3 rw,noatime 0 2
Then shut down the live session, boot from the hard drive, and you should be good to go!
Hope this helps