In reply to:
I tried mounting hda2 as /usr/local, but when I do, it doesn't appear that it really gets mounted.
You do have a /usr/local directory to mount it on, right? (I think you do, from my reading of your post).
Are you trying to mount it from a shell, or from a preinit script? Are you getting any error messages? Does mount -v -l agree with what you see? Is /hda2 already mounted somewhere else? You're not assuming that the default init does "mount -a" (it doesn't), are you?
It shouldn't matter whether the /usr filesystem is writable or not. IIRC, as mounting a filesystem doesn't write anything (except in memory in the kernel).