"The superblock could not read or does not describe a correct ext2 filesystem. if the device is valid and it contains an ext2 filesystem, (and not swap or ufs or something else) then the
superblock is corrupt, and you might try running e2fsck with an alternate superblock."
"What's the reason for the above error and how do i fix it/prevent it?"
The problem is that one of your partitions has a broken filesystem. The most likely cause of the problem is shutting down Linux without going through normal shutdown (power failure?). The way to fix the problem is to boot a rescue CD and run fsck against every Linux partition except swap. When you run fsck it is very important that you tell fsck the correct filesystem type. Your fsck command should look something like:
fsck -t ext3 /dev/hda1
Answer y to every question that fsck asks you.
Be prepared. Create a LifeBoat CD.