Try an 'stty -a' on your box, and you'll find that it says something like "kill = @" - the @ symbol has been set to a line-kill character. I'm not sure how this affects vi.
If you don't want to be bothered by this problem again,
set the line-kill character to something else:
'stty kill ^u' (replace ctrl-u by whatever your preference is.)
Could someone tell me how the stty kill option affects vi?