I like the solution made by FogCreek in their FogBugz product (BTW, StackExchange is also a FogCreek product).
Alerts can appear on the screen, stay until a timeout expires, and then fold with animation to a place where user can access them anytime:
If an acknowledgement is required, the badge indicates how many unacknowledged alerts are there. Otherwise it may just indicate that there are alerts. Clicking the icon opens a list of alerts with details:
In FogBugz user has to click the alerts to acknowledge them, but if it is not needed, you may just auto acknowledge them once user opens the list (Facebook does that for their notifications). If no acknowledgement required the list just displays latest alerts.
Speaking of the multiple alert problem, you may display one alert at a time, but use that badge to indicate there are unseen alerts. That said, I think this is quite a generic pattern which can be used in many cases with slightly different logic, depending on the context.