Advice concerning ApplicationException is somewhat conflicting. If you look at the MSDN Framework 2.0 advice, it would appear that user defined exceptions should inherit from it, however for the current advice see the framework 4.0 advice at http://msdn.microsoft.com/en-us/library/system.applicationexception%28v=VS.100%29.aspx
In particular you should note the statement "If you are designing an application that needs to create its own exceptions, you are advised to derive custom exceptions from the Exception class. It was originally thought that custom exceptions should derive from the ApplicationException class; however in practice this has not been found to add significant value. "