There are two issues (IMHO anyway), both are userspace.
First is the ability blacklist the given module from bootloader.
My initramfs has it since the beginning - it allows a noload=xxx
paramerer (comma-separated list of module patterns, cumulative),
for exactly this purpose. I implemented modprobe in shell (not
using a binary from module-init-tools) for initramfs (it's some
20 lines of shell code). Because of exactly that reason - on
certain systems i had a problem with certain drivers, resulting
in boot failures. Later on, this set of modules gets transformed
into a modprobe blacklist list. It's trivial to do.
And second is what to do with direct insmod invocations in minimal
embedded system startup sequence. Well, minimal it or not, but
shell is present anyhow, so I don't see any problem with that,
either...
Just my $0.02...
/mjt
-