I think there's a bit of confusion about the difference between stop and stop limit orders here. I don't use IB myself, but could it be that you placed a stop limit rather than a conventional stop order?
A stop order is simply an order to buy or sell at a worse price than is currently trading (e.g market is $10.50, sell at $10.20). In these cases, should the price fall to $10.20 you should execute at market. A stop limit is slightly different. This means if the price reaches your level, place a limit order at your specified price. (e.g if the price falls to $10.20, work a limit to sell at $10.20). This can prevent you taking out snake in the grass bids, minimising slippage, but you run the risk of missing your price entirely.
The big problem brokers have is that few exchanges accept stop orders (I think Eurex is about the only one). Most brokerages therefore have to work them on their own systems - you are inevitably leaving a lot to the discretion of the dealer. If the market has just been slammed, the dealer than has to judge whether to hit the bids - establishing a new low perhaps- or wait for the book to rebuild and achieve a better price. This is why many firms will only work stop limits (where you specify the minimum price) rather than stop orders.