The reason you get a disk check can be several different things:
ext2/ext3/ext4 filesystems have an optional setting to be checked after a specified time or number of boots has passed; see the -c and -i options of tune2fs to change this behaviour. See the manpage for more info.
Something happened which made the OS think a check is needed, e.g. the system suffered from a power loss.
In case #1, you can disable those periodic checks (or make them less common), which also makes them take less time. Also fsck for ext4 is faster than for ext3, which in turn is faster than ext2, and the differences are often quite big (depending on the size of the disk).
In case #2, it's best to let the fsck complete its work, however long it takes.