This is a great post.
But still I allow myself to add here a tiny supplement that shows how to use a kernel that doesn't have the 'ext3.ko' module built in. Yes, it is possible. It worked for me with 2.6.15 original kernel source.
First make sure you have the old 'mkinitrd' package, that came with your RH9 distribution installed.
Build the initrd image the same way as you did for previous 2.4 kernels (yes, I know it will be bad).
$ cd /boot
$ mkinitrd initrd-2.6.x.img 2.6.x
// whre 'x' is a minor version of the kernel.
Now we try to fix the image. It is most likely the gzipped archive.
$ mkdir /mnt/image
$ gzip -dc initrd-2.6.x.img > 26.img
$ mount 26.img /mnt/image -o loop
Look at the directory and see what it contains:
$ cd /mnt/image
$ ls
// looks sweet
Now see what subdir 'lib' contains. It is most likely empty... :/
$ ls lib
// was it?
If so, copy the necessary modules from /lib/modules subdirectory
$ cp /lib/modules/2.6.15/kernel/fs/ext3/jbd.ko ./lib/
$ cp /lib/modules/2.6.15/kernel/fs/ext3/ext3.ko ./lib/
Now replace the old 'insmod' binary, that resided in ./bin or ./sbin subdirectories with the one that is shipped with 'module-init-tools' package.
$ cp /sbin/insmod.static ./sbin/insmod
$ vi linuxrc
Now in the top of the file, before anything else, add the insmod command that inserts both modules to the kernel.
$ insmod /lib/jbd.ko
$ insmod /lib/ext3.ko
Go back to the boot directory and replace the 'initrd' image.
$ cd /boot
$ umount 26.img
$ gzip -c9 26.img > initrd-2.6.15.img
Thats it. Depending on if you're using LILO or GRUB make necessary configuration changes like simply editing 'lilo.conf' or 'grub.conf' and perform a reboot. If everything went fine, the kernel should boot without any problems. Yes, it worked for me...
P.S. If at the boot time you see some QM_MODULES not implemented and you kernel panics then boot back with 2.4 and replace the 'insmod' binary within the initrd image, you have created. Most likely, you've added an old insmod from 'modutils' package and not the one that comes with 'module-init-tools'.