This fixes zsh and screen for me, and keeps emacs working properly both on OS X and when SSH'd into a Linux machine. Then log out and SSH back into the Linux machine, and your backspace key should work properly in all applications. You can put the file in /usr -> share -> terminfo -> x/ on the Linux box (if you have root access), or in your home directory in ~/.terminfo -> x/ (create the directory structure if necessary). If you have Fink installed, get the file from /sw -> share -> terminfo -> x -> xterm-color otherwise, use the one installed by default at /usr -> share -> terminfo -> 78 -> xterm-color.
The solution: Copy the xterm-color terminfo file from a Mac to the Linux box. Terminfo is a database present on most Unix systems that tells programs how to interact with a variety of different terminals. I traced the problem to the Linux (Debian, at least) default terminfo entry for xterm-color. To see the option that turns off Mouse Keys, choose Apple menu > System Preferences, click Accessibility, click Pointer. If the numeric keypad still doesn’t work as you expect, you may have enabled Mouse Keys, which lets you move the pointer with the keypad. I wasn't content to keep checking and un-checking the 'delete sends backspace' option, because these things ought to be automatic. If your keyboard has a separate keypad but no Num Lock key, try pressing Shift-Delete.
I have experienced the same problem in a range of applications: when I SSH from my Macs into Linux machines, the backspace key often stops working.