can I answer "all of the above" ? :P
well... most distribution have a list in /etc, but not the all distro use the same. There is usually always a file named "modules.conf" (if I remember right? I'm not on a linux box right now) that contains some "alias". This usually tell the kernel to load the module "foo" when it need "eth0" as example (eth0 is a network card of course) or "alsa-whatever-modules" when it need "sound-card-1".
Some distro also have some other ways. As example my Gentoo has a file in /etc/modules-autoload.d (or whatever the name once again) named "kernel-2.6" or "kernel-2.4". This list contains a list of module to modprobes at the end of boot. But this is distro specific, as I said. It's possible that Fedora/Mandrake have another way.
And of course... the kernel always "try" to find the module by itself, but it rarely works (that's what alias are for)