Hm, WinSCP escapes characters, but not !. I have removed escaping ! almost year and half ago, because it did not work for some users. You have just opposite problem. What do I do with this? :-)
Anyway, I recommend you to use SFTP instead of SCP. There's no escaping necessary at all.
I constantly get error messages ("Received error message from remote side: 'scp: tail -f log20040414.txtjanetail -f log20040414.txt.jpg: No such file or directory'") when trying to transfer a file name with exclamation points in them. (The file in question was called !!jane!!.jpg)
This leads me to believe that WinSCP doesn't add escape characters to file names before transfer. I think it did earlier, because I've transfered these kind of files before with WinSCP. Is this a setting somewhere I've overlooked, or is there a workaround?