Are you booting the graphical boot? If so try booting using the other boot option in LILO menu (non GUI). This will be text based let it run through and see where the boot stops, I had simular trouble and thought that a service was hanging me up, when I ran this in text mode I found it was not the service that was listed on the screen when I was using the graphical boot. Once you can identify the service forsure, reboot and this time hit 'I' when it first begins to boot. This will allow you to confirm each services, just choose not to boot the service which is causing the problem, once you are in safely you can begin to troubleshoot further. In my case it was a service what I didn' want running anyways so I turned it off completely. Easy way to manage services in is Linuxconf.
Also if it is harddrake it might be waiting for input regarding a device, you will be able to select options when in the text based boot.
I turned the graphical boot off completely after this, just to avoid the problem again.
good luck!