Originally posted by stevnb
Why is there an _isi_1 there?
modprobe nvidia looks under /lib/modules/$(uname -r)/ for an nvidia.o, and loads it. The fact that it's looking in 2.4.18-3_isi_1 says to me that the kernel version has changed -- and since RedHat doesn't distribute any _isi_1 kernels that I know of, it seems that someone has changed the top-level Makefile when your "standard" 2.4.18-3 was compiled.
Which brings up the possibility that they changed more than just the version. If they changed the configuration as well, then that explains the unresolved symbols. If someone changed the configuration of the kernel you're running, then the configuration that's stored in RedHat's configs/ directory will (obviously) not match up. You need
a .config file that matches your running kernel at compile time, otherwise you'll see unresolved symbols like this.
You need to talk to whoever came up with this _isi_1 kernel, and get the .config file from the source directory, from them. Do what you did with the other config file with this one (that is, copy it to /usr/src/linux-2.4.18-3, then run make mrproper oldconfig dep), and try NVIDIA_kernel again.