The reason why SatoshiDICE can do this is because they include the output of the bet transaction as one of the inputs to the win/lose response transaction.
If part of the bet transaction is doublespent there's a good chance it won't make it into a block. If the bet transaction doesn't make it into a block, the response transaction won't either and is therefore worthless.