Be a Drupal opportunist. Use the right tool at the right time.
Drupal is a powerful content management system. I sometimes joke with clients that I've used every CMS out there but I landed on Drupal because of its flexibility and power.
The truth is, I'm an opportunist; I pull together a suite of solutions based on budget and requirements. Sometimes I may do everything in Drupal. Sometimes, however, I may pull in a different solution even though Drupal could do it too. I use Drupal as the foundation, but other products can be integrated.
I think everyone should try working this way. Don't spend hours and hours to get Drupal to do something when there is a great product right next to you.
A few examples where I might not use Drupal
- I have a tight budget and I need to add event registration. Sure, I could build this in Drupal and it would be great ... but on a tight budget and the data isn't really that important outside of the event, why not integrate a vendor product like Formstack.com. Quickly build the form, enter payment gateway account info and you're done.
- I need a sophisticated home page image rotator. If there is a jQuery plugin that does exactly what I need, I use it. Let Drupal serve the content in a list, grab the list with jQuery and run it through my gallery plugin of choice.
- I need the content adjusted just a tiny bit. I could work with Drupal to get it to output the content closer to what I need, or I can just adjust the content with jQuery. I recently had a situation where one page of my site was coming from a View. This one page was being output differently and didn't have one class that every other page had in its header. I simply used jQuery's addClass function to force this one page to include the needed CSS class.
- I need a survey on a website. I could use Webforms in Drupal, or I can quickly build the form in SurveyMonkey, deploy the survey and reap the benefits of a tool specialized in surveys when I review the data in their sophisticated slice and dice reporting system.
Every example I can give has a Drupal answer as well — Drupal modules are great and I use more than I can count. What I want to convey is that it is okay to broaden the horizon and pull in other tools to blend with Drupal. Sometimes a specialized tool has more robust features that come with the product, while creating the same functionality in Drupal would take me a lot of time.
Let's be opportunistic: use Drupal every chance you get, but remember that you can use other robust products to enhance your project.