I've had this same problem. One day, I would press a button on my keyboard for a letter, and it would enter a totally different letter above it. I knew my screen was uncalibarated, but just didn't know how to fix it. I figured out that the reason why I was like that is because I use my jean pant leg a lot to clean my screen (Nexus S 4G (Sprint)). I tried to restore it, unlock it, etc, and nothing worked. So (with my screen) I wiped my phone on my pant leg in the direction that it was uncalibrated....AND IT WORKED.
To see the direction that your Nexus S 4G is uncalibrated, just go to the home screen, take an app from the left or right hand side, drag is slowly across the screen until you see the app acting differently in one area. If up, then (with the screen on) wipe your phone in that direction and see if this helps. If not, you'll have to take it to a Sprint store, and usually they will give you a replacement since it's just a calibration issue.
HOPES THIS HELPS!