In our current quarter's series of MSDN Events, we are featuring a session on Web Parts in ASP.NET 2.0. Most people could get their heads around most aspects of Web Parts. They can grasp the basics of, for example, how the Web Parts zones automatically wrap any child controls (server, user or custom) with the appropriate "chrome" to give them a border and title. They seem to get how marking a property of a control as WebBrowsable lets the Property Editor Web Part expose those properties through the UI. But when the demos get into the area of Web Parts Connections and all its gobblydegook on providers, consumers, interfaces, and attributes for callbacks, I can see many eyes start to cross or lose focus. I still am not sure I grasp it 100% myself but if not I'm very close, thanks in part to the articles below.
The first is found in Visual Studio help and is a nice comprehensive explanation of the plumbing of web parts. It can be found here http://msdn2.microsoft.com/en-us/library/ms178187.aspx
The second is an article from the February 2006 edition of MSDN Magazine by Ted Pattison, an industry expert on portal sites. His article really is a good read on how everything hooks together, what's important in web part connections development, and aspects of timing as it relates to the rendering of the page. You can read his article here http://msdn.microsoft.com/msdnmag/issues/06/02/BasicInstincts/