The 300MB partition sounds awfully like the Linux swap partition. Linux actually uses that partition to temporarily store program data that is taken out of RAM, but will need to be accessed soon. In other words, if this is the swap partition, you don't want to delete it.
Your best bet would be to first transfer any irreplacable data to the Linux partition, then use
parted to delete the unwanted partitions. What you do from here is a matter of preference. 7GB should be more than enough for the basic filesystem /usr/lib and /usr/bin...so instead of going through the perhaps dangerous job of changing the partition table of the OS that's working, why not just add a couple of new partitions to Linux from the free space gained?
Example: all the programs you install yourself should go in /usr/local/bin or /opt. You could make a new partition and mount in these directories. Also a /home partition of about 10GB is recommended, as it would be required to store all of your own data. As well as this, some advise that /var be a partition of it's own, as well as /boot. Personally, I have neither of these, but there is a legitimate security/stability argument for it.
The compartmentalising of partitions makes the system easier to deal with. /boot stores the compiled version of the kernel. It's required at boot-time during which the kernel is loaded into main memory, but not needed again. Some people think that not having a seperate /boot partition is a bad idea because system instability, power outage, user error can mean that data in /boot is lost, effectively making the machine unbootable. It's usually advisable to make a small partition for /boot (about 30-50MB?) and mount it as read-only in normal operation.
It's a VERY good idea to have a seperate /home partition. Picture the scene: 6 months from now, you want to update your distribution. Installing the new distro requires that the partition of the old one be formatted and over-written with the new one. Except, that means you lose your data as well, which should really remain unchanged regardless of a new install. Additionally, I've known for mistakes that I've made in my /home to make the machine almost unbootable, i.e. fillling the hard-drive completely to the point that it groaned. If my /home was on a seperate partition, this wouldn't have been a problem, as /home as it's own partition is a seperate entity to the OS.
I've rambled on a bit. Oh well. Hopefully it was helpful somehow
