If you compile your filesystem as a module, you will need at initrd (initial ram disk). If I am right, your kernel cannot mount / directory if the file system is compiled as module which leads to the problem of system actually not booting. Initrd is sort of a work around that problem. Kernels compiled by Redhat and Fedora have ext3 filesystem as a module hence they need initrd.
You can compile your filesystem directly into the kernel and do away with initrd.
google for more info.