Buy one and we will donate one,thats crazy!!

I have come across many social startups that run with this model. You a buy a item that they sell and they will donate same item to someone in the third world countries. I say thats just crazy.
Firstly, you are charging your customers twice as much it costs. Secondly even if the customer is here to help, it's better he donates directly. The reason is pretty simple. The needs of the customer who is buying are totally different from needs of the people who are accepting the donation. Take this example of TOMS Shoe, for every shoe you buy they donate a pair to poor children in Africa. It's pretty obvious from the photos that shoe is something that need right now.
Now you give them something that they don't need. You have purchased something you might never use !!!! But the website has sold 2 items. It's the same with $100 laptop (OLPC). Seriously if you want to help someone in need donate what they directly, I don't you will be using that laptop ever when you have a cool new MAC at your place. There are organization dedicated for the cause and most importantly think if they really need what you are donating. 'A pair of Shoe ? really !! Why do you want a pair of shoe when you haven't eaten properly for a month ?
The only winner is the person who sells two items in a single sale.