I came across this exact issue. The goal was to deliver each alert along an escalation pathway - sending the alert to the next person in the list if it was not acknowledged in a given timeframe. We determined that Jabber was the best solution, but that to do it right we had to extend the protocol or investigate more clients. (The protocol lends itself very well to extension and there are countless clients available). This catch was because it was frequently desirable to acknowledge some alerts but not others.
For example. An alert's ultimate path:
Send to admin A via Jabber.
No acknowledgement after 5 minutes, sent to admin B via Jabber.
No acknowledgement after 5 minutes, sent to admin A via SMS.
No acknowledgement after 5 minutes, sent to admin B via SMS.
No acknowledgement after 5 minutes, sent to admin A and B's manager via Jabber.
No acknowledgement after 5 minutes, sent to admin A and B's manager via SMS.
Manager evaluates the alert, acknowledge it or phones admin A or B.
The catch is that if a second alert is generated in the middle of this process, admin A or B may wish to acknowledge it, but not acknowledge the first alert. For example, if they're busy with a separate issue that generated the other alert, or if they're not near a computer, know that the second alert is not serious, but that the first alert needs to be handled by someone near a computer and the escalation mechanism is the most efficient way to find the right person.
There were two types of message delivery in Jabber. (I believe called normal vs chat) It's possible that one of the two types allowed a differentiation in which message was responded to. Unfortunately, the messaging type that might have allowed for this caused extreme inconvenience with the clients we tested if a large flood of messages were received. (Also I'm not sure whether the people testing determined whether it was possible to indeed differentiate what was being responded to, due to this issue overwhelming the testing).
As it was exploratory and we didn't really have time to implement a full solution, we didn't determine whether the problem was just choosing a better client or whether extensions to the protocol were necessary. I still think Jabber is the best method to deliver alerts. For any alert delivery/escalation system, a person who acknowledges an alert should take ownership of the alert, and there should be repercussions for everyone failing to acknowledge an alert. This has to work with the system understanding the best way to reach a person, an on-call rotation, the risk of alert floods, the issue of alerts created by a person who is currently out of the rotation, and any political considerations caused by an alerting system that accidentally creates accountability if the existing system has none.