OSX 10.7.5 renaming attached Firewire drive
The problem comes from how OS X handles additional (non-startup) volumes. Say you have a volume named "FWDisk"; when OS X sees that, it mounts it at the unix path "/Volumes/FWDisk". If you put a user's home folder on it, the user's home path will be set to, say, "/Volumes/FWDisk/Users/fred". Fine so far.

But suppose fred logs in when the disk isn't connected (/mounted): the home path is still "/Volumes/FWDisk/Users/fred", which doesn't exist, so the OS creates it on the startup volume. You're working in a mostly-empty home folder without access to any of your files. So, you log out, and connect the external drive. What happens now is the mounter tries to mount it as "/Volumes/FWDisk", but discovers that that name is already in use, so it mounts it as "/Volumes/FWDisk 1" instead. This means that none of your users with home folders on that disk can find them -- they're looking for their homes at "/Volumes/FWDisk/Users/whatever", but they're actually at "/Volumes/FWDisk 1/Users/whatever". And it's going to stay that way forever unless you do something.

The solution is in 2 parts. First, to fix the immediate problem, you need to delete/rename/move that "/Volumes/FWDisk" folder that's preventing your external disk from mounting normally. You can do this logging out of all accounts with homes on that disk, logging into one with a home on your startup disk, unmounting the external disk. Then, use the Finder's Go To Folder feature (under the Go menu, or Command-Shift-G) to go to the hidden folder "/Volumes". Then rename or move the problem folder with the same name as your external disk. Remount the disk, and you should be back to normal.

The second part is figuring out what's causing the problem, or else it's just going to keep happening. This is going to be just a matter of paying attention to when the problem starts, and what leads up to it. Are you logging in when the external disk isn't attached? Is there something else triggering it? There's probably no reliable way to prevent it except for avoiding whatever event triggers it, so you need to find and avoid that trigger (/triggers).