If some of them are working with the @ in place then it must be an IOS issue for the ones that won't work.
Yeah, that must be it. I did found something strange, if I use '@@´ as SNMP string, it doesn't work; but if I use '@' (just one character) then it works. I also used combinations with other letters but as soon as I use two '@' symbols within the snmp string, SNMP fails.
Sun12d@y --> works
Sun12d@y@ --> fails, no matter where you put the special character.
Devices where I get this behavior:
Cisco 3750, 3560, 2960 with 12.2 Train IOS.