There are three kinds of application dependencies as I see it:
Dependencies on runtimes such as Java or Flash
Dependencies on locally installed applications
Dependencies on another virtualized application, for example, packaged Internet Explorer integrates with packaged Adobe Reader
When it comes to dependencies on runtimes, there are different strategies you can choose for your deployment methods. My favorite, for most of the environments, is having the latest, greatest runtime version locally installed. Most of your applications can use this version and the ThinApp packages can make use of natively installed components.
I tend to package together only the application that requires a really old version of the runtime with its dependencies. Now I have one single self-contained package including both the application and its dependency.
If you have a couple of applications requiring the same special version of a runtime, I would use...