A common component is a library or some other piece of code that is created and maintained by one group and used by many groups.
Some problems we have are:
How does your organization handle common components?
Ideas that I have:
What you have here may be a human factors problem rather than a technical one. In fact it may be primarly a learning issue (coupled with the typical not invented here syndrom).
Having worked in large companies, I realise that it is tough for a new person to understand all the resources (i.e. shared code libraries) available to him, much less how and when to properly use them.
When you have a new hire, is he/she given formal training in your common component library?
Then there is the problem of what people are rewarded for. At review time do managers reward people for using the common components, improving them and submitting improvments back to the library? Or do managers simply care about their own projects.
As for your group that maintains the common library, what form or reconginition do they give to people who take the time to suggest or submit improvements? Do they get written up in the company newsletter? Get a cash bonus? Get their photo on the bulliten board?
Remember, people are highly unlikely to do something for a company for which they receive no recognition or reward.