One of the trickiest things to get used to for developers new to Outlook programming, and even those with some experience, is figuring out how to get programmatic access to various items at various times. There are built-in methods to get this access, but sometimes the problem lies in determining which is the proper object to automate.
Outlook, like the other applications in the Microsoft Office suite, can be extended quite capably by most users who are relatively comfortable working with VBA macros. Many people have written themselves some handy procedures to help automate a few moderately difficult day-to-day tasks. However, when these kinds of solutions grow in scope to become useful for more people than just yourself they are better implemented as a COM Add-In.