Why do you think computers BSOD when overclocked? A critical bit didn't reach it's destination or stay accurate in its container reporting a value outside of what is expected. The result is a crash. For example, if you have a nForce driver at 0x80000000 in the memory stack and the the reference to it had a bit in the memory not switch rapidly enough causing the value to be 0x80100000. The next device that attempts to access the nForce driver won't find it is looking for and subsequently crash. If it was Windows, cue BSOD.
An error occurs when a value is generated that is not expected/inside of normal parameters. Unstable computers do this at stock (bad processor, bad memory, bad sectors on a hard drive, bad motherboard). Stable computers never do it. The farther any of those listed components are overclocked, the more likely it is to occur.
Put simply, you have to understand how binary works (it only takes one bit being stuck/wrong to report a completely different value than what is intended) to understand how easy it is for a computational error to occur. There are billions of opportunities for this to happen every second in every computer. Overclocking greatly increases the odds that it will happen.
ECC is required in computers with large memory banks to prevent this from happening in a situation where it is not only likely, but inevitable (there's a lot of surface area for an electron to hit and cause a bit to randomly flip).
BOINC has at least two computers calculating everything so if someone screws up, it errors and throws out the result. F@H has no such mechanism to prevent computational errors.
Moreover, GPUs are more likely to error than CPUs because they don't handle any critical information. A GPU could have a bad binary switch in it and you might never even know it.