It's not so unreasonable for Visa to take 2% (they often take more than that.) Outright fraud costs them around 1% (though they'll never reveal their stats.) Doing collections costs them a lot, and they lose some to cardholder bankruptcies. They do provide a valuable service of isolating you from all these. Taking checks probably costs you a larger percentage of revenue than credit cards.
Fraud in online transactions is almost always charged back to the business. It may be different face to face, I'm not sure. And then they make money on interest.
My ideal online payment solution (and I think it'll happen later) is for everyone to have a number they put into a site to buy. Then they have to log into online banking and approve the charge. There'd be a description of the company and the charge automatically with the debit, and "Approve / Decline / I Don't Know This User" choices or some such.
It'd reduce fraud to near-zero levels, and I don't think it'd cost too much to set up. Credit cards will live on for a long time as short term credit, but I reckon banks could offer that at much more reasonable rates with a much better idea of people's finances and credit profiles. And with widespread enough adoption, merchants could start telling CC companies to take a hike. Heck, the bank could even make it a "card that you control" or something to not break from the card tradition.