Dave Musgrave has a great post up on when it makes sense to create a customization. We tend to follow a hierarchy similar to the one that David outlines:
1) Standard Functionality
2) Process Redesign or Field Repurposing
3) ISV Solution
4) Partial ISV Solution with customization
5) Previously created customization
6) Customization from scratch
Make sure that you check out David's whole article.
1) Standard Functionality
2) Process Redesign or Field Repurposing
3) ISV Solution
4) Partial ISV Solution with customization
5) Previously created customization
6) Customization from scratch
Make sure that you check out David's whole article.