I've heard so many horror stories and seen people mess up their linux boxes by doing one hard shutdown and restart. It seems in windows this isn't really much of a problem, but in linux you might get lucky the first time and the second time you have some major damage. Is there a way to prevent this from messing up so much?
Linux caches a lot of the filesystem, infact it will use all the available memory for that, and in the case of ext2 a lot of the organizational information (superblock, file metadata, etc) is cached and is lost when the power is cut.
yeah, make sure your kernel has ext3 support. ext3 is basically just ext2 with a journal file (/.journal) tacked on. it can still be mounted as ext2 and everything, so its totally compatible with ext2.
Recently the .journal file is a hidden inode, unless you tune2fs on a mounted filesystem because it can't hide it then.
Also be carefull, if you're e2fsprogs aren't new enough they won't work on ext3 because they'll see the unsupported filesytem features (has_journal, and possible needs_recovery) in the superblock and will bail since they don't understand them.
Overall ext3 should save you from losing your whole filesystem if you pull the power, but it won't save your data. If you had a file open in something when you did it, expect the file to be trashed and be happy if it's not =)