Two things I've done that both drove me nuts. The first was, while editing a C file, I dropped into the shell to do something, got distracted and forgot what I was originally working on so I fired up the editor again, made a couple hours worth of changes then saved and went one my merry way. Later I discovered the original instance of the editor, saved my work (doh!) and exited only to find out I'd wiped out the last couple hours worth of work by saving the old file over the new one!
The second thing (and sadly this took me two days to discover) was debugging an old Fortran program that dealt with time. I had accidently used the variable "M" as both month and minute. Drove me crazy trying to figure out why the program worked sometimes and not others. I now use very descriptive variable names ;-)