I think I found the answer, it's a feature added in v1.9:
http://www.magentocommerce.com/knowledge-base/entry/cross-border-price-consistency
In our case, it's not possible to upgrade to 1.9 at this time, but I managed to get the desired results, by copying some from version 1.9:
I extended Mage_Sales_Model_Quote_Address_Total_Abstract::collect
and changed the following line (line #68):
...
$this->_areTaxRequestsSimilar = $this->_calculator->compareRequests($storeRequest, $addressRequest);
...
To the following:
...
if ($this->_helper->isCrossBorderTradeEnabled($this->_store)) {
$this->_areTaxRequestsSimilar = true;
} else {
$this->_areTaxRequestsSimilar = $this->_calculator->compareRequests($storeRequest, $addressRequest);
}
...
Of course, the isCrossBorderTradeEnabled()
helper method and configuration option don't exist, so you have to create this yourself in the system.xml of your own module:
<config>
<sections>
<tax>
<groups>
<calculation>
<fields>
<cross_border_trade_enabled translate="label comment">
<label>Enable Cross Border Trade</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>70</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
<comment>When catalog price includes tax, enable this setting will fix the price no matter what the customer's tax rate is.</comment>
</cross_border_trade_enabled>
</fields>
</calculation>
</groups>
</tax>
</sections>
</config>
And call this option in the if-statement:
...
if (Mage::getStoreConfig(self::XML_PATH_CROSS_BORDER_TRADE_ENABLED, $this->_store)) {
...