There are many ways to do things. The use of a /boot directory is one of them. I find that it saves me suffering, pain, and hassle.
What I do is this: when I set up my boot partitions I make the first partition on the disk a fairly small one and mount it as /boot. For example, one system I run looks like this:
[root@trona /boot]# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda5 217777 61929 144605 30% / /dev/sda1 15522 3519 11202 24% /boot /dev/sda6 3399668 52576 3174396 2% /u1 /dev/sda7 3399668 766632 2460340 24% /u2 /dev/sda8 1581200 1343272 157608 89% /usr
In the case above, the /boot filesystem is roughly 16M in size (which I think was more or less the first 2 cylinders on this disk). The main point of having this small /boot filesystem is that it keeps all the stuff that LILO has to deal with on the first few cylinders of the disk and avoids things like using option linear and BIOS hassles with large disks and the like.
Red Hat Linux at least seems to cooperate with such a strategy, and what ends up in here looks like this on my system:
[root@trona /boot]# ls System.map kernel.h vmlinux-2.2.14-5.0 System.map-2.2.14-5.0 lost+found vmlinuz boot.0800 map vmlinuz-2.2.14-5.0 boot.b module-info vmlinuz.generic chain.b module-info-2.2.14-5.0 vmlinuz.rambuff initrd-2.2.14-5.0.img os2_d.b
Take a look at your /boot and also look at /etc/lilo.conf and you will be in good shape to install new kernels.