- permission check
- interrupt action that takes too long
- run action in separate thread or even in context of different process or event on other machine
- monitoring
- preparing any data / environment before call and processing results after call
- opening / closing resources
EDIT
Although many years passed since I gave this answer I decided to add the following to make the answer more complete.
- security check.
- fixes of incorrect or behavior of API that you cannot change. For example boolean method that returns
falsein some conditions but should returntrue. You can fix this using AspectJ.