When your application breaks too often for your customer's sake or your developer's sanity, you probably have too many.
I'm working with a .NET, SQL Server desktop client server app that allows:
Custom Tables
Custom Stored Procs & Views (These can have data modification capabilities as well)
Creation of custom data sources in the application (Inside or outside the 'live' database)
Creation of custom grid forms based on custom data source or combining of custom data sources
Creation of custom reports based on custom data sources
Creation of custom logic script on data entry fields
Customizable data import functionality
Customizable workflow process data entry and notifications
Customizable selection and placement of data entry fields/controls on standard forms
Detailed user security settings to all forms, data CRUD, app functionality and reports
Seriously, this company created a customizable beast. It's designed for a vertical market, but the other implementations could be limitless.