A friend of mine recently put me on to this, a fantastic exception handling design pattern by Microsoft that supports exception handling across multi-layered enterprise applications. It is fairly extensive, maybe too extensive for our needs but it has certainly helped further my understanding of implementing exception handling in multiple architectural layers.
For the project we are currently working on, we have drawn significant inspiration from an excellent series of tutorials by ASP.NET MVP Imaar Spanjaars over at his website.
The series is split into two, with the first 3 parts explaining and demonstrating basic n-layer architecture and the 2nd 6 part series extending this and adding concurrency checking, security and a validation framework. The series is written in ASP.NET but the concepts and architecture are applicable and easily adapted for any of the .NET languages.