I was using the Terminal to ssh into a linux server. The backspace key worked fine inside the shell, but when I entered vim to edit text files, the backspace key started behaving like a delete key -- it was deleting the character under the cursor instead of the one to the left.
The solution was to go to the Terminal menu, select Window Settings, and then click on Emulation from the pop-up menu. Check the "Delete key sends backspace" option, and all is good to go.
Mac OS X Hints
http://hints.macworld.com/article.php?story=20031006152406688