I guess I have some clues, but not to all of your queries..
First of all, changing the boot drive through BIOS is a very bad
idea. Linux numbers the drives as, /dev/hda, /dev/hdb ... and
so on (last letter increases for each drive).
If 40GB drive was set as bootable drive whle you installed Linux,
the the hard coded value in most of Linux files is /dev/hdb. But
when you set 20GB as bootable drive, then that (20GB) drive
which was earlier hdb now becomes 'hda', becase it is not the
first drive. Therefore you will not be able to boot.
I am not experienced in GRUB, so can't answer your questions.
My suggestion to set 40gb drive as bootable, and try to boot
Linux from floppy. Chances are high that it will work this time
(becase, now your 2gb drive is /dev/hdb, the one Linux is looking
A NOTE of caution: Linux is a very nice operating system, and is
very stable, user friendly. However, for newbies, it takes a while
to learn it. SO, do NOT loose interest in LInux.
Hope this helps,