As a general rule and IMHO, installing multiple Linux distributions to multi-boot on a single computer is more trouble than it's worth. For the most part, one distribution will do what the others will do. If you want experience with multiple desktop environments, you can install as many as you like within Ubuntu and switch between them by logging out and logging in again, selecting the appropriate desktop environment at login. You can even set it up so you can be logged in to multiple desktop environments simultaneously on different virtual terminals (VTs).
If you want experience with different package managers or other features that really are distribution-specific, chances are installing extra distributions using a virtualized environment, such as VirtualBox or VMware, will be easier and safer than dual-booting. This also has the advantage that you can run both distributions simultaneously.
That said, if you really need to multi-boot, IMHO GRUB is not the best choice. Its Achilles heel is that it requires configuration within the OS from which it was installed. (At least, that's true of the stock configurations delivered by Ubuntu and most other distributions. It is possible to create a GRUB configuration that's better divorced from any one distribution, but that requires advanced knowledge, and it's still necessary to configure it from within an OS.) That is, if you use Ubuntu's GRUB to control the boot process but you also install, say, Fedora, then when you update Fedora's kernel, Ubuntu's GRUB won't know about that fact until you reboot into Ubuntu and type
sudo update-grub (or until you update Ubuntu's kernel). Alternatively, Ubuntu's GRUB might chainload to Fedora's GRUB, in which case Fedora's GRUB will know about the updated Fedora kernel, but that complicates the process for booting to Fedora. Worse, each OS is likely to try to control the boot process, resulting in repeated boot coups, in which OS A sets its boot loader as the default, even though you want OS B's GRUB to do the job. (This isn't a GRUB-specific issue, though; it's likely to occur whenever you multi-boot.) The more OSes you try to multi-boot, the more frequently you'll run into boot coups.
For complex setups, many people prefer to use my own rEFInd boot manager. Unlike GRUB, rEFInd scans the disk for boot loaders and kernels whenever the computer starts, so it will detect new kernels no matter what distribution installed the kernel or rEFInd. There are caveats to this, though, and you may need to tweak things a bit for each distribution to get it to work. In particular, you may need a
/boot/refind_linux.conf file for each distribution so that rEFInd can pass appropriate boot options to each OS. This is covered on this page of the rEFInd documentation.
Another approach, albeit largely a theoretical one right now, is to use the Freedesktop.org Boot Loader Specification. The idea is that distributions should put their kernels in standardized locations and cooperate on a configuration file format so that boot loaders for one distribution can load kernels for another distribution. This proposal has merit, but AFAIK few distributions are adopting it, so as a practical matter this isn't something you can rely on today.