Ive had this issue. All I can think that was causing it was the scenerio of a customer on the checkout page repeatedly press the paynow button. Since a transation could take a few seconds to go through, it could appear to the customer that nothing is happening on the checkout page (even though it is). So as the customer thinks nothing is happening they may press the button a second time. You could always disable the paynow button after initial click...or far more snazzle...you could use the WebAssists Progress Bar server behaviour...wrap it around the checkout form. This is my first guess any way.
Chris