IM applications never consider the possibility that the system could suspend. They are poor citizens because they don't think about the issues, not because they consider the issues and decide to be bad. This would mean that they wouldn't even consider the possibility that they could need or want a suspend blocker. And, on a system that uses suspend blockers, their naive design is fine: they check for updates every 5 seconds if the system is awake, but don't keep the system awake if there's nothing else keeping it awake.
In fact, the current situation doesn't really give IM applications the ability to behave well; they need to update is a reasonable amount of time without any user interaction if the user is watching the window out of the corner of their eye, but don't need to do anything if the user is actually not paying attention. There's no current easy way for an application to say "sleep for 5 seconds, but don't bother waking me if the user doesn't care", and applications just don't consider this situation anyway, so they don't tend to try to set up a negotiation with the screensaver or something.