From an engineering perspective, the hardest and most surprising part how difficult it is to make a bitcoin transaction (to process a withdrawal). The first problem is running out of available outputs.
I ran Just-Dice for a year, and this wasn't ever a problem until after I shut it down. (*)
I don't know what kind of a site you're running, but if it's a gambling site, you will find that you have more withdrawals than deposits, typically. Because you have more losing players than winning ones.
You pay the winners using the losing player deposits, and that's the end of the story.
If you are running out of outputs, it's probably because someone is using your site to "launder" their coins. You need to limit that account because he's messing things up for everyone else.
(*) After shutting down there were no more deposits, only withdrawals. I was depositing coins onto the site in 500 BTC and 1000 BTC lumps, and they were being withdrawn by hundreds of people in much smaller amounts. That's the only time the problem you describe showed itself. And it's easily solved by making raw transactions to split the 1000 BTC deposit into 100 pieces of 10 BTC each.