A suggestion from a usclug member to check my TERM env var to see what going on put me on the right track. He suggested I look at the /etc/termcap file to see how the keys are being assigned (a very long, but interesting file). Anyway, I did the simple thing, checked how PuTTY identified itself, since it sends a ^? for delete and works hunky dory on my Linux systems. It identifies itself as ‘xterm’, so that’s what I set it for. Putting this in my .cshrc fixes my problems:

set term=xterm

It’s a simple tap of the hammer. It’s finding the right spot to hit it that’s a pain in the ass.