The introduction says "Your application will need to run in full trust to use this procedure." However, a modified version of this procedure can be used in a partial-trust ClickOnce application, including an XBAP. Instead of adding an AppDomain.AssemblyResolve handler, the application can call ApplicationDeployment.DownloadFileGroup[Async] just before it needs to use the additional assembly. Code from the additional assembly can be used either directly or via reflection--Assembly.Load(simpleAsmName). If the on-demand assembly is called directly, this has to be done from a method different from the one calling ApplicationDeployment.DownloadFileGroup(). This is because the JIT compiler needs all types used in a method to be loaded before entering the method.
Here is a sample XBAP project: http://scorbs.com/2006/06/28/xbaps-ondemand-clickonce/