I had to remove a kernel the other day. My /boot is about 100 meg and there wasn't enough room to install the latest (fc15). I had to go in an remove the oldest kernel, on boot file system, and the compiled module listing from /boot. I also checked the /boot/grub/menu.conf to see if the oldest was removed after the boot.
I then did yum update and reboot to get the latest kernel running.
This is MY FAULT. I have partitioned my disk so that /boot was only about 100 meg. I think about FC 10 (or so) /boot had to be about 300 megs in size. I have partitioned by main disk to have /boot, /, /usr, opt, /home, /tmp, swap and a /u1 partition ( /u1 is for user 1). This allows me on upgrades to not have to reformat /home, /opt, and /u1. Each new release has the "programs part" formatted and starts fresh. This doesn't fix the problem of configuration files that are old and out of date and don't get updated on install. My partitions were chosen for backup purposes back when I used "backup and restore".