One of the nice things about Linux, the reason I think Linux is used in commercial settings, tends to be because it's very flexible. It's not just cheap, it's also that you can tune it for your particular usage case and that's one of the reasons it gets used there. In the developing world there are two reasons. One is obviously the price which is always a big issue, especially if you want to bootstrap your own IT technology. It's kind of pointless to buy a pre-made package when you don't know how it works and you can't change it. You really can't claw yourself up from zero when you have very basic knowledge and a very polished package that you can't even look at to see how it works - you just can't learn from that. You can learn to use it but you can't actually learn to recreate anything like it.
So one of the things I think the OLPC does very well, for example, is that a lot of the applications they have are written in a very easy language. It's not the most efficient language perhaps, and it's not necessarily the language I would use, but Python is really easy to learn - it's perfectly straightforward.
I think they have a special button you can press so when you use one of these programs you can see the source code for it, so you can literally learn how that program works. If you screw up you can say "OK I want the original back because my edits didn't actually work". But I think if you are serious about not just wanting to give people computers, but are hoping to instill into them skills in computers - not just to use a word processor but to understand how it actually works - I think Linux and open source in general is almost a requirement. Because without source access it's always just going to be a black box.
The price is important, don't get me wrong, but I think the source access just for learning purposes is hugely important. Even though let's face it, most people will not look at the source code, most people using a computer will just use it as a computer. But even if you have just a small percentage that actually looks at the source code and tries to understand it - that's how you build up maybe a small core but still a core competency in computer science - no matter where you are, even if you're in sub-Saharan Africa.