Basically, the State Department used the Oliver North option, so by immunizing and debriefing them, they made a trial almost impossible, and the judge, U.S. District Judge Ricardo Urbina, was forced to dismiss the case.
Obviously, part of the problem is that the prosecution screwed up, though they can refile, but the real crux of the matter here is that the Bushies in the State Department intended this result. They wanted to protect Bush supporter Eric Prince and his company, now called Xe.
Republican Congressmen did this at the Iran-Contra hearings, because they feared that North would rat out Reagan if he actually ended up in prison.