Originally Posted by Beefybison
You are correct that fsck uses it. It is used for any files that aren't properly closed for any reason such as a power failure.
The lost+found directory is used by fsck when it identifies an inode (file) that is not recorded in any directory - in other words, it is lost, and cannot be accessed. In earlier filesystems (ext/ext2) this happens when the system crashes before updating a directory entry with a new file (it is in buffers to be written, but doesn't get written).
Ext3 added a journal to catch this situation, and will replay the journal to apply the updates, so it happens a LOT less. Ext4 continued that and made it work better so it happens even less.
It is actually not necessary (as per the developers statement) that fsck be run for ext4 at boot. Replaying the journal should be sufficient.
That doesn't mean problems can't occur... Specially when layering filesystems on top of other structures (lvm and md), but now it is more important that the other layers maintain their consistency to protect the data.
The use of the lost+found directory goes all the way back to the origin of UNIX, and nearly all UNIX/Linux native filesystems will have a lost+found directory for this purpose.
The last note is that the lost+found directory traditionally had at least 10 blocks (more for bigger disks) preallocated so that fsck could update the directory without having to allocate disk blocks (which may not be valid either during a crash recovery).