Elon Musk of SpaceX has reported the details of what went wrong on the third launch of the Falcon 1 the other day. It was a case of a few too many uncontrolled variables. This was the first launch with the re-designed Merlin 1C engine which uses a different cooling method from the original version (it circulates cold fuel through tubes inside the engine nozzle rather than lining the engine bell with a material that removes heat by slowly burning away). The new engine had a small amount of residual thrust after shutdown, too small a pressure to measure in ground tests, but at 200 km up, enough to bump the first stage into the second stage just after it had separated. A very slight delay in staging would have allowed this tiny excess thrust to dissipate and staging would have succeeded. Everything else about the launch to that point went well, and they may try flight 4 as early as September.
Of course there is a tendency to second guess things like this, or to rationalize them, or both. You might think that with all the experienced engineers SpaceX has hired, and with all the engineering and simulation tools that are now available, that a relatively simple two-stage booster would be "easy" to get working. After all, governments have been launching things like this since the late 1950's. But on the other hand, a rocket is a "full up" system, with lots of interacting stuff. Simulation is great, but there's nothing like a full-up test to truly see how everything works together (or doesn't).
Viewed this way, three test launches are really not a lot to get the bugs out, especially when the third flight had a substantially redesigned engine. This is rocket science, after all (really rocket engineering, but OK). As an example of more extensive second guessing, this NewScientist article talks about how much better reusable systems would be for development - you get the vehicle back to check out and improve after the flight instead of every launch being brand-new never-flown hardware (the first stage of Falcon 1 is ultimately intended to be recovered by parachute and re-used).
Of course fully-reusable launch systems (space planes or whatever) should be the ultimate goal. As they say, we don't throw away a Boeing 777 after one flight. But we know from NASA's experience with the shuttle and various proposed systems (the National Aerospace Plane SSTO?) that full reusability is a whole different level of complexity, and SpaceX believes that at this stage, there are still economies of scale that are possible for expendibles with modern hardware design and fabrication, modularity, and other techniques. The fact that they are working out the bugs with the single engine Falcon 1 means that things should go better next year with the Falcon 9 that uses nine of the Merlin 1C's in its first stage.
Starting with a clean sheet of paper in something as complex as launch vehicle development is a tall order, and you have to give Musk and SpaceX a lot of credit for taking this on and sticking with their plan.