If I telnet to my Linux box I get similar behavior. I can fix it if I set the terminal type properly. Be sure that the TERM environment variable on Solaris accurately reflects a terminal with the most capabilities you have. Then start vim and do ":se all" (without the quotes) to see if vim's idea of the terminal jives with Solaris'.