You can resize one of the Ubuntu partitions to create free space for Fedora, but very probably you need to do it outside of Ubuntu (the partition that is operated on cannot be mounted at the time of operation). Ubuntu live-cd or Knoppix or any other Linux live-cd that has GPartEd/similar or onto which it can be temporarily installed works. But probably it's just as easy to do one more reinstallation and instead of any automatic fill-the-whole-disk selections take the manual partitioning setup, read a little about partitions (Wikipedia might help) and create the needed partitions (boot (/boot), root (/) and swap at minimum, better make /home separate partition too), making sure you don't fill the whole disk -- leave some space for the other OS too, unpartitioned if you like. Then when you're finished, start installing the 2nd operating system, create the needed partitions for it in the space that you left free during the first OS installation (you can share/re-use at least swap and /home partitions between the two to spare space and make the systems share your personal configurations; just don't format them, only select their mountpoints appropriately in the partitioning tool) and that's it. Install bootloader to MBR; you can have both installers install it, that's OK, as long as at least either one of them does that. You might have to add the other OS to the boot list after the second setup, but not necessarily.
If you don't know anything about partitioning, you better start reading. Here are the basics:
- disk is divided into portions called "partitions"
- partitions have a filesystem; on Linux one of the popular ones is ext3
- you usually want at least /boot, / (=root), swap and perhaps /home partitions
- swap is not formatted the same way the other partitions are (just mark it as "swap")
- the partitions are connected to the system trough "mount points", which tell where in the system's directory structure they are in; root (/) is the top level, the others are below it
- boot stuff like bootloader configuration (or parts of bootloader), kernel etc. are stored in /boot; most of the system-wide stuff is on root partition, and if you have a separate /home partition, by default user data (anything the users have that is not system-wide; personal configurations, personal files, ...) is on /home
- you can create a lot of separate partitions (for /etc, /usr, /var, ...) if you like, but usually the ones are sufficient that I mentioned above; you can live with less too, if you need
- one GNU/Linux operating system usually needs one (it's own) root partition, but the others can more or less be shared between several operating systems; they are created and formatted once, then simply mounted in all the different distributions.