Q. Why can't I run any code I want in the background?
A. Someday, I suspect you will, but for now the platform is constrained to the specific types of background processing we discussed. The security and performance implications of running anything and everything on a device that is always connected to the Internet is enormous. Remember that the iPhone is a phone. Apple intends to ensure that when your iPhone needs to be used as a phone, it functions as one!
Q. What about timeline-based background processing, like IM clients?
A. Timeline-based processing (reacting to events that occur over time) is currently not allowed in iOS. This is a disappointment but ensures that there aren't dozens of apps sitting on your phone, eating up resources, waiting for something to happen.