Your problem will go away if instead of sending the username you send the user id (that probably is a number).
That should be easily handled by email clients.
Another thing that I do, although it requires a bit of more programing is to send short simple URLs that do not have the risk of being mangled with.
For example I will send something like
http://example.com/profile_123711611121
Then on the server side, using URL rewriting I intercept that and pass it to a PHP code that knows what the URL means and does the proper redirect to a more complicated URL like:
http://example.com/users/profile/update_profile.php?id=123711611121
The first URL will be nicely parsed and it can also be easily copy pasted by non tech people.
The second URL may be broken in two lines, not parsed correctly and so on.
In conclusion you are in control of what URLs you email. Make it simple for you and your users! :)