I had this problem for years.....
The official solution of the problem is in the README of the drivers and says this:
Q: My X server fails to start, and my XFree86 log file contains the error:
"(EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module!"
A: Nothing will work if the NVIDIA kernel module doesn't function
properly. If you see anything in the X log file like "(EE)
NVIDIA(0): Failed to initialize the NVIDIA kernel module!" then
there is most likely a problem with the NVIDIA kernel module.
First, you should verify that if you installed from rpm that
the rpm was built specifically for the kernel you are using.
You should also check that the module is loaded ('/sbin/lsmod');
if it is not loaded try loading it explicitly with 'insmod' or
'modprobe' (be sure to exit the X server before installing a new
kernel module). If you receive errors about unresolved symbols,
then the kernel module has most likely been built using header files
for a different kernel revision than what you are running. You can
explicitly control what kernel header files are used when building
the NVIDIA kernel module with the --kernel-include-dir option (see
`sh NVIDIA-Linux-x86-1.0-4496-pkg1.run --advanced-options`
Please note that the convention for the location of kernel header
files changed approximately at the time of the 2.4.0 kernel release,
as did the location of kernel modules. If the kernel module fails to
load properly, modprobe/insmod may be trying to load an older kernel
module (assuming you've upgraded). cd'ing into the directory with
the new kernel module and doing 'insmod ./nvidia.o' may help.
Another cause may be that the /dev/nvidia* device files may be missing.
Finally, the NVIDIA kernel module may print error messages indicating
a problem -- to view these messages please check /var/log/messages, or
wherever syslog is directed to place kernel messages. These messages
are prepended with "NVRM".
The most common problem is of trying to load a kernel module not built for your kernel version.To be sure(99.9%) that the module is the correct the safiest way is installing the source files of your current kernel and try the files from http://www.sh.nu/download/nvidia/
.Pick the file for your kernel
(2.4 or 2.6) and install it.During installation it may ask the path of your kernel source(I cannot give you the default path because it may vary from distribution to distribution) or it may find it automatically.After installation do all steps as you used to and everything will (probably be fine).At last trythe command 'uname - r' in the console to see your kernel version.Hope it works!!