After upgrading from RedHat 6.1, the system would not boot into runlevel 3. Tons of error messages were spewed to the console during various parts of the init process about the root fs being read only. Further investigation revealed that rc.sysinit no longer existed, and had been moved to rc.sysinit.rpmsave. The contents of that file indicated that it was my old 6.1 rc.sysinit, which I had made some small customizations to (I don't know if that would cause this problem). Copying the file to rc.sysinit allowed the system to remount the root fs read-write at the next boot, but the following error was still reported when starting each service: " "/etc/init.d/functions: No such file or directory". /etc/init.d was not a symlink to /etc/rc.d/init.d, but rather a directory containing only the file "cups" (I had installed cups 1.1.4 prior to the upgrade). Replacing it with a symlink allowed the system to boot properly. The system is an i686 SMP.
Apparently a problem when the initscripts package is upgraded - reassigning.
What does your upgrade.log look like? It's most likely a problem dealing with that cups package you installed.