One way to do this is use PXELinux
to load your kernel and an initrd
filesystem containing your modules and everything else you might need to boot. The Linux Terminal Server Project
also has a method where they create links from the read-only mounted NFS filesystem to a ram disk for the temp files that the kernel needs to create when it loads modules.