GParted is the Gnome Partition Editor application.
"A hard disk is usually subdivided into one or more partitions. These partitions are normally not re-sizable (making one smaller and the adjacent one larger). The purpose of GParted is to allow the individual to take a hard disk and change the partition organization therein, while preserving the partition contents."
1. resize MS Windows 7 partition
2. resize MS Windows Vista partition
3. resize Extended partitions
4. resize ntfs and win32 and ext4 partitions within the Extended partition
The only thing you have to be aware of as a user, if you do this, is don't delete any partition. You don't want to restart any OS after the resizing and let them have a hiccup.
Start the GParted Live CD and choose one step after the other in a logical, sequential style.
1. Make a logical partition smaller, so you can make other partitions larger (yes, stupidly obvious, but nonetheless I said it).
2. Move the other logical partitions to make room for the primary partitions.
3. resize the extended partition
4. resize the 2nd primary partition (make it bigger).
5. move the 2nd primary partition to have room for the 1st primary partition.
6. resize the 1st primary partition (make it also bigger).
At the end, all tasks were performed by gparted without any problem. I restarted Linux Ubuntu 9.04. Grub in the Master Boot Record was still untouched as was the /etc/fdisk, of course. The fsck starts automatically and should find no problems.
Then I started the Windows bootloader (grub chainloader+1) on the 1st primary partition. Windows 7 did a NTFS check and that was all it had to do. Windows Vista was replaced in this scenario, so it was necessary to use the Install-CD and start the 'repair'-function which also did it's job automatically. It scanned and checked it's own partition (hd0,1) that was moved and resized and it also checked the ntfs and win32 partitions on the extended partition. After two reboots, all done.
Conclusion: GParted did it's job flawlessly resizing and moving partitions in a complex scenario (ext4, ntfs, win32, primary, ext-log partitions). MS Windows 7 and Vista played along with the resizing and relocation as well, which surprised me a little bit. Well done. Linux? Ubuntu? You guessed right...