You may have to try a few approaches to see which one best fits your need.
--Of course, you can load assemblies explicitly in your IPH program code and provide the path.
-- Since the VSTA shell loads the IPH, I think that it can use the probe paths in its .config file.
ie: C:\Program Files\Microsoft Visual Studio 9\Common7\IDE\ vsta.exe.config file can contain dependent assembly paths
--For VSTA 2.0, you could try adding assemblies into these paths
C:\Program Files\Microsoft Visual Studio 9\Common7\IDE\PublicAssemblies
C:\Program Files\Microsoft Visual Studio 9\Common7\IDE\PrivateAssemblies
let me know if these are useful.
These may be helpful references to plan the best dicovery approach for your IPH's dependent assemblies:
http://en.csharp-online.net/.NET_CLR_Components%E2%80%94Resolving_Names_to_Locations
http://www.summsoft.com/blogs/garyvsta/archive/2007/02/08/dependent-assembly-binding-redirect-by-version.aspx
hope this helps!