Some people think that they have no need to answer IM or emails because they only want to do the tasks they want to do. Your task isn't important to them, so they ignore it. So if I have a colleague who doesn't get back to me in a timely manner, I go actually ask them the questions in person (or by phone if they are remote). Be polite but firm. If they try to avoid answering, explain you need the answer immediately becasue you can't make any progress until the issue is resolved and then stand there until they help you. YOU cay say it casually (not in a nasty manner) so something like "Hey I hadn't heard back from you about ABC, so I thought I'd see if you can help me out or when you will be able to get me the information." Ask if they will show you where you can get the information so you don't have to keep bothering them. Note that you don't do this if they are only not answering you instantly, but if several hours have gone by without even an acknowledgement of the message.
Another approach is to schedule a meeting with them. Then discuss how they would prefer to be contacted and how you can resolve the communication issue so that both of you can get your jobs done. You may find they think you are bothering them with things that you should be able to figure out on your own.
If they still refuse to give you what you need, you may need to escalate it to the boss, but this is an action of last resort. You won't make friends this way, but sometimes you have to do what you have to do to get the job done and if people know they can't tromp on you they will be less likely to try in the future.