Please note, a clarification. I wasn't saying MySQL never corrupts it's tables, it does, and usually under heavy parallel write load. My point was that locking or not locking the table makes no difference.
Plus, most of the times it happens, you'll find bad memory in the system that becomes more of an issue under parallel load where it's more likely to get accessed by the database. A LOT of MySQL servers sit on crapola hardware, and no database can make up for broken memory.
If you run 100 kernel compiles or something like that, and log the output, you can grep it for sig 11's, the classic sign of a hardware problem on a linux box. using a '-j 4' switch to make will help thrash memory as well. The higher the number the more compile threads the machine will launch while building.
Since most machines never really use all their memory, these problems are often unknown until load increases.
I'm not saying MySQL isn't the problem, it may well be, but until you've proven the hardware is reliable, it's all a crap shoot.