There are a ton of way a drive can fail, it has a motor that is constantly spinning at 7200 rotations a minute. With FAST moving (faster then your eye can follow, you see a blur) spindles with electromagnetic heads almost touching it, and a bunch of delicate circuitry.
The motor can fail, there can be warning signs, sounds and smells, it can also just not work one day, any part of it can be fried by electro-static discharge or by a power spike causing it to just not work, I have seen motherboards that will fry any drive connected to a certain SATA port, and many other such things.
There is always physical damage (falling) and the suspention could break or a jolt to the frame while operating could cause the motors to crash into the plates, breaking one or the other or even derailing the read heads (happened to me once). I even saw cases where a contaminant (probably a single grain of sand) got into the drive, it will occasionally come between the write head and the platter, tearing swathes of material off of the plate, causing bad sectors. (never open a drive unless inside a clean room)
smart is somewhat useful, but only marginally so. Several times it warned me after it was too late. Once it warned me of imminent failure (on someone else's computer), and after copying 70% off of the drive it just died. So enabling can be very useful.
Nowadays I don't worry about detecting drive failure, i worry about preserving data in case of drive failure. RAID5 is atrocious. but raid1 (mirror) is a wonderful thing.
And if you have the expertise, time, and budget. You can build a fileserver using ZFS + RAIDZ (or RAIDZ2) and get total protection for your data.