of the kernel's symbols are in any shared libraries. The kernel is what loads shared libs (well... that and the ld-linux.so.2 program; you need both), so you'd get a chicken-and-egg problem if the kernel needed shared libraries. Shared libs are loaded when the program loads, not when they're required, and at the point where the kernel loads, you're still in real mode, with a 640K limit on memory, and you don't have a filesystem to load the libs from.
Anyway, though, that's not really important.
Did you have an old copy of 2.4.21-18.7 installed? What did you do when you compiled it yourself?
It sounds like there's a mismatch between the actual kernel and the header files that the nVidia installer used (actually, run the installer again and post one of the compile lines from /var/log/nvidia-installer.log, too -- it might be using the wrong include file path).