I'm under the impression that you can only resize a partition into unallocated space - before you can make a partition bigger, you need to make adjacent partitions smaller - hopefully without data loss.
Resizing can be tricky - filesystems can be resized at the end, but not from the beginning. So if you have
and you want to make hda2 bigger, you need to make 1 or 3 smaller. If you make 1 smaller, that's easy. But then you have
... and you need to move hda2 before you can make it bigger. The safest way to do this is if you can find enough free space on your drive to back it up: resize hda3, format a new hda4 and put everything from hda2 on the new partition.
Then delete hda2 and create a new partition that uses all the empty space in the middle.
Copy over from hda4, and then put hda3 back to normal.
Please, correct me if I'm wrong!
EDIT: actually, if you can clear enough space from hda1 in the first step, just move hda2 in its entirety to the new empty space, then resize that partition. only one bigass file move, instead of two.