Extend the schema only if no existing object class fulfills the requirements of your application. Extending the schema is a complex operation; schema changes are replicated to every domain controller in the enterprise forest. Consider this step carefully.
The schema can be extended in on of three ways:
Modification of an existing class is required when your application requires the ability to extend existing objects of the class. For example, to add application-specific data to the User object, you would normally extend the class User, because you must handle existing Users and not just special Users created by your application.
When you subclass an existing class, any user interface items associated to the original class will not be inherited by the subclass. For example, if you subclass a user object, the property pages and menu items associated to user are not inherited. For this reason, it is preferable to extend an existing object or create an auxiliary class rather than create a subclass.
Whether you subclass an existing class or modify an existing class, you will want to extend tools like the Active Directory Users and Computers snap-in to manage the extended attributes of the objects. For more information, see Extending the User Interface for Directory Objects.