A while back, I posted some information on how to get on demand assembly download to work for ClickOnce applications. As MVP Corrado Cavalli noted to me privately, however, this technique will not work in partial trust - and yet, the download APIs themselves are designed to work in partial trust!
To use on demand download in partial trust, you have a couple of options. All of them involve downloading the APIs before the CLR attempts to load the assembly, thus bypassing use of the AssemblyResolve event.
The AssemblyResolve approach is nice because it's low cost for the developer. You don't have to instrument your application to detect whether an optional feature is installed or not. However, you may choose to use one of the above two methods instead, even if your app is fully trusted.