Just found this:
If you want to change your online account name, email, or both, the correct way to do so is by going directly to the GameSpyID site, and first login using your current details. Then change the relevant information, enter the correct password and submit it to save the changes. Then when you return to BF2, enter your new details and retrieve your new account details then login to your multiplayer account.
GameSpyId site
So for all you guys whose name is mangled and need to change it give it a try.
UPDATE: seems like this is not an entirely easy thing to do. I have been unsuccessful so far in getting my name to change. Thanks EA for making this such a PITA!