The standard install uses kernel 2.2.16, but kernel headers for 2.4.0. This makes it difficult (impossible?) to compile some modules since you're compiling for a 2.2.x kernel, but the distro includes 2.4.0 kernel header files. One example is the differences between then 2.2.x and 2.4.0 version of /usr/include/linux/netdevice.h. The distro version of this file will not compile many network drivers because of changes to the net_device structure. I suggest the proper fix is to provide a 2.2.x version of kernel-headers with the 2.2.x kernel.
The current setup is correct. - /usr/include/linux and /usr/include/asm are supposed to match the C libraries and have been meant to for all glibc users. Glibc 2.2 needs 2.4 kernel headers for the features it uses and exposes to applications. Kernel modules should use the headers with the kernel but cannot rely on those being in /usr/include/linux.