The best and easiest approach in my opinion, is to resize the partitions offline using a utility such as Gnome Partition Editor (GParted has a live CD/USB for download)
/usr should never have user files on it. I am guessing you have a process writing some big logfiles that has filled /usr. CentOS distros do not usually have 10G worth of software, although it is completely possible.
Regardless of adding space you need to see what is going on with /usr
find /usr -mtime -10 -size +10000 -ls
What you want is a really bad idea. You should fix /usr.
However:
lets assume /usr/local has tons of extra software. Reboot into single user mode.
As root, use mkdir to create a directory on the /home/ /home/usr/local
use tar to move the files
cd /usr/local
tar cf - . | (cd /home/usr/local && tar xBf -)
Be ABOSULUTELY positive this worked correctly.
cd /usr; rm -R /local; ln -s local /home/usr/local
You really should either clean up junk on /usr, or add another disk or partition and move file over it the way I described. Using /home will be a mistake. NeutronScott gave you another way to play with partitions
This is really a critical situation. What application does that server run? How big is your /usr/share ? Compared to other directories in /usr, moving /usr/share to another location and creating a symbolic link would be easier to avoid serious damage. You could curve out a little bit of space doing that while ensuring zero down time.
What version of CentOS are you using? I guess 5.x? For a permanent solution, I would go for LVM. But for that, you would have to spend a lot of time in single user mode to migrate the data and at the end things may not turn out as expected.