If you have 2 different tickets on 2 different carriers that are not interlining, then don't be surprised if they try to charge you part or all of a new fare if you don't catch their flight due to a delay.
The only way around this would be to have fully flexible tickets with them or have the gift of the gab.
It's certainly not BA's fault if you book a ticket on an unrelated airline which runs late, or you leave too little time to make a connection. Unless you have paid for a flexible ticket, why should they take the hit?