Without more information, i.e. the grub install command from anaconda.program.log for
Fedora 20 and Fedora 16, it's hard to say what the difference is. Since Fedora 16
isn't support anymore I don't know that it matters.
What I can say about Fedora 18/19/20 though is that it only installs grub on an explicitly
targeted installation device (drive). So if for example sda wasn't specified as a
target device, it will not get grub installed or reinstalled or a prior bootloader
overwritten. If only sdb was specified for installation, then the bootloader is only
installed on sdb.
The BIOS dictates what drive's bootloader is used. So if your BIOS looks first to sda,
and if there's bootloader code on it, then it will execute that code and not
what's on sdb. This is not a grub problem, it's not a Fedora installer problem,
it's just the way the computer works. If you want it to look at sdb first, then your
BIOS needs to support this and explicitly told to use a different drive as the primary
boot drive. Or you have to swap drives around to force the BIOS to use the bootloader on
what was sdb.
Or you have to manually install grub on sda, which is sometimes tricky. It needs to have a
sufficiently sized MBR gap (1MB, meaning partition 1 starts at LBA 2048) so that core.img
can be embedded. The core.img is the minimum amount of code necessary to then locate the
rest of grub on a different drive.
Chris Murphy