In addition to what was quoted by Baldrick65 (which basically refers to the ext2fs file system), Linux nowadays comes with support for several journaling file systems - ext3fs, ReiserFS, XFS, JFS, and some commercial ones too I believe. These add more functionality by keeping a journal of recent changes (writes) and changes waiting to be done. The journal is always reviewed on boot, so if you are transferring files when the system goes down (power interrupt or whatever) the journaling fs will notice that the journal is inconsistent on the next boot. It will check what has been done and what was supposed to have been done when the system went down, it corrects those errors that might have occured and everything is smooth sailing again. Very neat, and it's a feature from the database world in case you wanted to know.
Other file systems, like FAT32 (NTFS is *sort* of a journaling fs) and ext2fs, will experience corruption that can lead to unusable corrupted data if a transfer is interrupted. That's why you get the file system checks on boot when the computer has crashed (fsck - for file system check - on Linux, and chkdsk on Windows).
Usually, fsck is sheduled to run on ext2fs partitions every now and then using the cron service, to make sure they're fine.
You can easily convert ext2fs partitions to ext3fs by running tune2fs -j <partition>
- I recommend this if you're still using ext2fs. If you do that you will want to update your /etc/fstab to indicate the partition uses ext3fs too.
More not-so-useful trivia: ext2fs is the updated version of Linux' original own file system - the extended file system, extfs. ext2fs is meant to be pronounced "second extended file system", so ext3fs is pronounced (drum roll, please) "third extended".