.NET Messenger Service has a word filter that won't allow certain words in your friendly name… as plain text. MSN/Windows Messenger changes all spaces and percentage signs in a nick to the hex value (AKA, URL encoding), so it can be sent to the server as one long message as there cannot be spaces, because spaces separate the command arguments. You can also not send characters like éóÖÙÝýçÈᣦ°£ºÝ, so you must encode them in UTF-8, encoded it would look like éóÖÙÃýçÃᣦ°£ºÃ.
Update: This information is now outdated. When you send a full URL encoded nick, the server will only accept certain characters, and when you re-sign in, certain encoded characters are removed from your nickname (eg. %0D).
So if encoding spaces into hex is allowed… what about the whole nick? Special characters don't need to be encoded (eg. éóÖÙÝýçÈᣦ°£ºÝ), as its not likely a word like that would be banned, plus MSN Messenger only de-hex's normal characters. Take the word 'fuck' for example, encoded in hex it would be %66%75%63%6B, chances are you don't see that is an evil word, neither does the server, if the server were to check it properly it would decode it, then check it.
