When you are deploying some sort of web based app with some sort of services (mobile, messaging, whatever) in a far away land, one of the largest time sucks is configuring the server. If the server has already been configured, there is generally no documentation. No one knows you decided to config your ssh port on 666. Granted one 'could' provide better documentation, as well as server install scripts (think a list of apt-get or yum or whatever you are doing). However, after working with EC2 on amazon, I think standardized disk images are the way to go.
1) You are actually deploying the same server everywhere. So, why not make that server once, as an EC2 instance and then actually deploy it.
2) Services that rely on a hardware device such as an SMS modem have to be installed on a local box, but, web access, database storage, and number crunching, can all be stored in the cloud. Then, if you want to edit your web interface or Z-score calculation for child malnutrition, you don't have to worry about power outages in Tanzania. And you will probably have less latency as well. The route that your server takes to ssh into a server in Tanzania is Byzantine.
3) Scaling. This is a dream issue but say all of South Africa starts using your service, all you need to do is deploy some more EC2 instances and load balance. You dont have to send over a bunch of techies to set up a server farm.
4) CAVEAT - as i mentioned above if you have a device attached to your box - such as an SMS modem, or rf transceiver or whatever - then you cannot deploy that aspect of your app to the cloud (the aspect that connects with the device) however you can use the EC2 image to create your local server.
EC2 is great for standardization, especially when you lack people, money, and equipment - i love it.