The fact that queues do not have swap() methods, or fast reverse or merge methods, means I usually end up implementing my own versions---sometimes I use a special opeation so heavily it must be fast. word2x attatches one queue to the end of another queue very frequently, for example and has it's own queue that does this with pointer manipulation (the queue that loses elements by operating this way would otherwise need to be squashed anyway).
Other times I need an augmented data structure to do something with acceptable efficiency. There is no way I know within the STL toolkit to transform a straight binary tree into a splay tree, 2-3 tree, AVL tree, etc. -- Duncan (-: "software industry, the: unique industry where selling substandard goods is legal and you can charge extra for fixing the problems."