Prolly a double-click on the submit button.
I get around that by having a unique token (an integer I generate with a serial ID, something like "auto increment primary key" in MySQL) that I pass along with the form.
I generate the following output:
<form action=whatever.php>
<INPUT TYPE=TEXT NAME=TheGoods>
<INPUT TYPE=HIDDEN NAME=token value=35>
</FORM>
And, on the receiving page, I (sql) "delete from tokentable where token=$token";
If this statement works, I then dump the data. Otherwise, I display an "already submitted" message.
-Ben