"Normally, there is an implied term accepting responsibility for the types of losses which can reasonably be foreseen at the time of contract to be not unlikely to result if the contract is broken. But, if there is evidence in a particular case that the nature of the contract and the commercial background, or indeed any other relevant special circumstances, render that implied assumption of responsibility inappropriate for a particular type of loss, then the contract-breaker escapes liability."