Custom dimensions allow you to create an additional dept of customized tracking that Google Analytics doesn't automatically track for you. Think of it as adding a custom "dimension" where you can create a space to collect and analyze your custom data within Google Analytics.
For example, you can create a custom dimension that uses a javascript variable to collect and track your e-commerce shopping cart transaction values. Setting this dimension up will allow you to more accurately track your e-commerce analytics. Every time you have conversion you can accurately record the total transaction value and pass this information along to Google Analytics using custom dimensions.