Personally, I think it would be smart to program wallets so that software would auto detect if you are sending it to proper address, to catch such a mistake before it becomes fatal.
Which would require that different blockchains didn't use the same address formats... like BitcoinCash using identical address format to Bitcoin. In cases like that, it is IMPOSSIBLE for a software wallet to determine if the address is BitcoinCash or Bitcoin.
It would also require that other currencies stop "piggybacking" on other networks... like the way that USDT does (via Omni).
To take it a step further, a system would send smallest amount possible to that address and if transaction is successful, send the rest 99.99%.
Also, I'm not sure how you think this idea will help?

For instance, for any given Bitcoin address, there is a "matching" BitcoinCash address. If I accidentally sent some Bitcoin to a BCH address, the transaction will be successful, regardless of whether or not anyone can actually access the private key for that address.
The small transaction confirms... the 99.99% transaction then gets sent anyway. All this idea would do is A. create more transactions (which we really don't need)... and B. cost users more in fees.
However, if BitcoinCash used an unique address format, then if one were to attempt to send BTC to BCH, it would fail as the address would be rejected.