Oooh, interesting questions.
I would think that yes, posting your IM screen name is a more or less open invitation, though perhaps with limitations. Say it's posted on a message board...it would be an invitation to the others who belong to the board, not anyone who wandered by, though that's certainly a risk you take when you post such things publically. If they have your info...hmm....well, if you've said to them "here's my IM, let's chat sometime" and they don't contact you, then I wouldn't contact them. In that case, I'd assume they don't like to IM, are too busy, or maybe just don't want to chat with you. But if they've just seen your name the way you've seen theirs, then it should be ok. Then they're probably just thinking the same thing you are-- should I send a message or shouldn't I? PMing first to ask permission would be awfully formal, but I don't see anything inherently wrong with it.
Interestingly, someone who kind of tracked me down via indirect info (my yahoo name was the same as my blog name and the same as my username on another board) ended up becoming one of my closest online friends, though it was certainly weird the day I got a message out of the blue that said "Hey, are you ___ from ___??" lol
I always send someone an email/PM before I add them on an IM client. I don't like it when people randomly add me without talking to me beforehand; I don't know where they've found my addy, so I don't know how to treat them or what they're likely to want.
Oh, yeah, also a good point. It depends on the IM client, IMO...if there's a space to put info with my add request, then I would, (ie "Hi, this is Kiriana from Intensity!"), if not, PM/email first. I do have a tendency to ignore people who don't tell me who they are right off the bat.