Right. Well, the first thing noticed about the machine was that it was getting almost all the way through the boot up: maybe rebooting in verbose mode (hold apple-v at start up) might shed some light on what was causing it to freeze?
Turns out it was generating a crash report (/Library/Logs/CrashReporter/loginwindow.crash.log), so had a peek at that. Apparently, there was a bad call coming out of a certain system plug-in (/System/Library/LoginPlugins/BezelServices.loginPlugin). With any luck, replacing that with a clean copy might do the trick.
So, booted into target mode (hold T at start up) and chained the iBook to another machine that was also running 10.4.8 using a FireWire cable. That brought the iBook hard drive up on the other machine, and I replaced the bad plug-in. Then I entered a few lines in Terminal to make sure the file permissions were all kosher.
cd /Volumes/your_drive_name/System/Library/LoginPlugins
sudo chown -R root BezelServices.loginPlugin
sudo chgrp -R wheel BezelServices.loginPlugin
(IIRC the mode flags were already set right, so I didn't bother with those.)
Then restarted the machine one more time. It booted without a problem, so hopefully that's that, though it might not be a bad idea to back stuff up, just in case.
Cheers