We are building an app (WinForms, .NET 3.5) that loads \"Plugin\" DLLs into a secondary AppDomain. The secondary AppDomain needs to communicate occasionally with the 1st one
Unless you specifically want to avoid WCF for some reason, I would suggest taking a look at it. Specifically, you can use the NetNamedPipeBinding, which provides for communication on the same machine using named pipes. You can find some more information here: http://msdn.microsoft.com/en-us/library/system.servicemodel.netnamedpipebinding.aspx
As well, here is a reasonably concise blog entry demonstrating it's use (from a WMP plug-in to a third-party app).
Based on your description of the application, you could establish a WCF service in the first AppDomain then call into that service from the second AppDomain.