Simulations are way easier to write than almost anything else (I'm a nuclear physicist who did this professionally for many years.) The reason why: physics. Or more specifically: conservation laws.
Conservation laws are the book-keeping of physics, and they act as global checks on correctness. If your code conserves energy, mass, particle number, charge, momentum, etc it is probably correct in the ways that matter, because it's incredibly hard to get bugs that get the physics wrong in materially interesting ways while still obeying conservation laws.
I once wrote a rarefied gas dynamics simulator (modelling a few thousand interacting particles--I was curious about some non-equilibrium thermodynamics questions) that conserved energy to +/-1 bit in double-precision (and which exercised the weird feature of some x86 processors that had something like 80-bit internal registers but did 64 bit double precision computations, and which allowed the garbage in the extra bits to contaminate the LSB, resulting in very slightly different behaviour in debug and release mode, which gave me fits for weeks.) It is just incredibly hard to get that level of conservation and still get the physics wrong.
And then there's semi-analytic solutions: to check that gas dynamics code I wrote a super-simple analog of the system in Perl based on approximate equations of motion, and got the same results. Because the underlying physics admits of different computational representations that are guaranteed to be the same if they are both correct and extremely unlikely to suffer from the same bugs you can have a very high degree of confidence in their correctness.
So no: the results of simulation are not wrong 97% of the time. I've worked on one experiment where the modelling was wrong, and which took three different computational approaches to sort out, but it's a rarity.
My feeling, based on experience, is these guys are onto something very interesting.