I wish I had a better answer for you but my bet is that you will have to dig in and do some code modifications yourself. Magento does allow you to choose how to calculate taxes - you can choose Shipping Address, Billing Address, or Shipping Origin, but I don't think that (out of the box) it will allow you to do two of these options at the same time based on shipping method. Go to Admin -> System -> Configuration -> Tax -> Calculation to see the options that are available.
You might want to start poking around app/code/core/Mage/Tax/Model/Calculation.php. The getRate() and getRateRequest() methods look like a good place to start.