Custom controllers allow you to write visualforce pages without them having to be related to any specific object. Typically this is useful for pages that do not deal with a single object (list views) or that are completely devoid of any object data. Extensions are useful for extending a standard or custom object and displaying additional data about it or related objects.
If this is not what you are asking about, please expand upon your initial question.
If this is not what you are asking about, please expand upon your initial question.