I created and use DC's all the time. They are incredible time savers for repetitive tasks and common components. I use them primarily for residential construction detail drawings where components get reused constantly. Simple DC's can be built with very little investment of time. For instance, I have "smart lumber" components where I can quickly insert the needed lumber dimensions (2x4's 2x10's, etc. and length) The component takes care of setting the proper true size of the component so I don't need to remember the conversions from nominal to actual. (2x4 to 1.5"x3.5" etc.) The options are set up as picklists which are far faster to set than browsing through a large component library looking for the right size item. Another good use is to dynamically change the dimensions of joist hangers, etc. depending on the lumber.
More sophisticated components would allow building fully framed walls with options for spacing, openings, etc. but these require more thinking and investment of time. Constructing custom roof joists are another perfect example and there is an example of this on the 3D Warehouse.
DC's do suffer from one MAJOR limitation though. (which I hope the SketchUp guys will address in Currently, there are no DC values for rotating or scaling textures. If your DC changes the dimensions of an object, the texture is scaled, much like using the scale tool. But in the case of lumber textures for instance, you want the texture to remain unscaled when dimensions change. (like how the push-pull tool changes dimensions) Until this limitation is fixed, it's better to apply textures to a DC AFTER it has been dimensioned.
If SketchUp fixes this one major limitation, DC's will become even more powerful and helpful.