Don't play with your $TERM
My terminal goes screwy, eats characters, says it's ``dumb''. WTF?
Your problem arises because you don't know what type of terminal you are using.
If you are using a Windows telnet or SSH application, such as plain 'telnet', putty, SecureCRT, etc, it will have options somewhere to specify what type of terminal to act like, because it can only act like a terminal -- it is not a real terminal. (Real terminals are like the old VAX terminals - they're called vt320's as it happens - which have hardware capabilities that cannot be changed). Such programs are ``terminal emulators''. They emulate -- impersonate -- terminals.
You need to set the term shell variable to the name of the terminal you are using (``emulating'') so the remote machine can know how it should display its output.
The remote system has in a file the settings and requirements for nearly all known terminal types (/etc/termcap on most machines) and from this the proper terminal settings are extracted.
I usually use ``vt100'' emulation as it is one of the most widely supported, can do everything I want it to do, and the BBS isn't very stable with other types.
As a general rule you should not have to set the terminal type (by way of the term variable) manually, because when you login the computer will request that your terminal tell it what type of terminal emulation it is employing. Things fuck up when you change the term variable to an incorrect terminal type (eg setting term to ``vt102'' when you're emulating as ``ansi'').
It goes arseways because you have told Nurse (Prodigy these days) that you are using a ``vt102'' capable terminal when you're not. So when Nurse trys to do summat only a ``vt102'' can do it goes screwy.
Inside the Solaris CDE the default terminal is a ``dtterm'', which is a purely Solaris invention. So fuck it. Use an xterm. When you login Nurse will know you have an xterm and will set things up accordingly.
Don't play with terminal types. If a certain terminal type doesn't support summat it's not because it's lying to you, it's that it simply isn't capable of doing it. Eg, ``ansi'' terminals can't scroll backwards or highlight text. So if that bothers you, you need to use a program that can emulate something other than an ``ansi'' terminal, not simply lie to the remote computer by changing the term variable.
Alternatively, if your program can emulate an alternative terminal type that does have the capability you want, tell it to do just that before you connect.