When you've looked at Drupal and Drupal's Contributed modules and you still can't find the exact feature you need, it's time for a custom module. Custom modules are used to extend existing Drupal functionality -- and the functionality of existing modules -- in an upgrade-safe way. Custom modules can also be used to add completely new functionality.
An example of a new functionality that alters the behaviour of Drupal core while adding new client profile access -- that we just happen to have recently completed -- is a custom authentication and user profile system that interacts with custom data stored within an Open Source CRM.
Are you looking for custom module development for Drupal? Get in touch!