Hi, I'm a newbie but I've actually managed to do this myself. I don't know what is a hack and what isn't by definition and I have noticed such things are not to be posted here, but I will post and if a mod feels it's out of place please forgive me.
To get an MSN field, the first thing you need to do is an SQL thing. You need a mySQL manager and basically under the "user" tables, you'll notice all the entries for icq, aim and yahoo. Add another called msn for example, make it a VARCHAR of reasonable length (as it's a whole Email address).
Then in the user CP template and registration template (and memberlist/postbit templates as appropriate) you can simply add an extra <td> table under the ICQ one for MSN. the variable the information will be stored in is $msn (or whatever you called it with the mysql manager).
I have no idea about sql or php but found this one fairly simple. Just duplicated the ICQ bits, relabelled them MSN and added the SQL entry under "User".

Hope that helps, and again apologies if this is too much info.