Fraud has been very very high with domain names lately. When a majority comes from a specific country they look to see how many people from that country legitimatly buy them compared to the fraud. And for them to ban a country(s) must show theres more fraud than legitimate orders.
Well, I have first hand experence with handling hundreds of thousands of domain registrations back in 1999. I had to ban Turkey because the abuse from that country was so high. I was able to filter out indivual abusers but there are some countries that have way to many scammers online. Until they stop trying to scam their whole country will be blocked.
Credit card companies don't like doing business with companies that have a lot of chargeback claims. I don't see the point in banning entire countries. Just make them send you an international (western union) money order in US funds.
I agree: Banning on the basis of country TLDs is a very bad solution. While this is certainly an easy way to cut down on frauds it sure is discriminating.
Business logic might dictate to go for the easiest, most cost effective solution. In the case of a selling site this is not too problematic - the overwhelming majority of online shops don't operate globally anyway.
For companies acting in theory on a global scale, like search engines, this is a bit different. Any site that sees and prides itself to serve the world wide web should be ultra careful to ban users on the basis of nationality.
It should be added that this kind of behaviour is definately totally contra productive to any efforts to bridge the digital divides, a goal that in turn the world wide economy could only profit from.