The Brooks Review on the iOS notification system:
How do you design a notification to simultaneously be annoying and alerting, while at the same time getting of the way when it needs to get out the way. That is, to say it better: how do you design a notification that notifies you and reminds you of things, all the while it doesn’t annoy you and notify you about erroneous stuff? Is it even possible?
As I previously mentioned in my comment here, not all notifications should be treated the same.
Alerts that require immediate action (a Skype call for example) should use modal popups or other methods that interrupt the workflow. If the user is not okay with that he should be given the option to disable them selectively (or all at once) in the settings. Notifications that inform users of incoming data (IMs, emails etc) / background tasks completion should not interrupt the workflow. They can be stacked somewhere (for a given period of time) or completely disabled in the settings.