According to Elon Musk, the problem was in a recontact between the stages. From a SpaceRef's SpaceX Determines Cause of Falcon 1 Launch Failure article after the media teleconference, Elon Musk was quoted:
We have a definitive understanding of what went wrong on Flight 3. The problem was due to a design error not a production or quality
assurance issue. The thrust transient was longer than it was for the
prior flight. The previous flight had an ablatively cooled engine.
Flight 3 had a regeneratively cooled engine. The gap between engine
cut off and staging was 1.5 seconds - which was fine for the
ablatively cooled engine on Flight 2. But on Flight 3, with the
regeneratively cooled engine, there was some residual thrust after
engine shut down and this caused the first stage to be pushed back
toward the second stage after separation and there was a recontact
between the stages.
Note that Musk talks about a recontact, not a bump. I.e. the separation failed with the inverse of it, a recontact of the two stages. Here's a video of the relevant part of the SpaceX Falcon 1 launch 3 from the Omelek Island, the Kwajalein Atoll:
Last couple of frames just before the video jumps to fairing separation show upper stage engine ignition while the first stage was again in contact with it, catching up with up till that point inertial upper stage due to the mentioned residual burn. Since the upper stage was not designed for such engine ignition (some launch vehicles do exactly that and while lower stage still burns so the upper stage doesn't require ullage motors, but no US ones as far as I'm aware, and those that are use an open mesh interstage skirt at sufficient separation from the lower stage to allow exhaust gas expansion), this could have only resulted in two scenarios:
- Recontact wasn't symmetric and exhaust of the upper stage engine ignition with lateral thrust vector forced the upper stage into a violent spin, or
- upper stage exhaust reflecting upwards into itself and creating a pressure spike, resulting in a hard start, followed by rapid unscheduled disassembly.
Final few seconds of the video during fairing separation suggest the first scenario was the final demise of the upper stage, from which the stage apparently couldn't recover and likely eventually disintegrated as it reentered denser lower altitude atmosphere. There's only that much of translational control that gimballed main engine and RCS thrusters can provide to the stage, which is at that point far below orbital speed, and soon starts falling back towards the surface.