This is obviously an amazingly large topic, but having recently been forced to increase usability of a business process with a monolithic Constituent Resource Management program (Raiser's Edge) I feel like I need to voice my opinion. I have been a great fan of Drupal for the past year and my appreciation of the open source nature and ever-changing state of the software is great. Processes greatly improve over time, the community talks about problems and fixes, and there seems to be a flexible solution for (almost) everything.
Integrating a Drupal website (or any website, for that matter) with proprietary CRM software requires coding, which could be trivialized if the proprietary CRM supported more flexibility with data. Column headers must be exact, formats must be perfect, and it must be in an import-friendly format (luckily CSV is supported). This is all well and good, but how do you interact with existing records in your CRM database that runs off of a MS SQL database? You have to purchase a very expensive import plugin that includes duplicate-checking, and even then it doesn't do everything you want it to do.
So after you've created an interface with your website that can export CSVs in the exact required format and purchased your import plugin for thousands of dollars you are mostly set. You can import records into your proprietary CRM from web submissions and employees are happy. You could of course go full-proprietary and get the CRM created by the same people as Raiser's Edge, but then you're at their mercy for updates/support on that front as well. Not to mention you're probably not going to get the website flexibility you would by using a more established CMS. And then you've got additional costs to the programmers and your own IT staff if you have any.
CiviCRM seems to be the solution to this integration pickle. It's an open source CRM that runs on top of Drupal. A web-based CRM has the advantage of being available for workers anywhere (you can do this via Remote Desktop in RE) and the community support is an amazing feature. The big thing is the web-friendly database format for developers, specifically ones dealing with submission data from the web. The cost of CiviCRM is the cost of your IT staff that sets it up. It does everything that the other software does. I haven't looked too far, but I'm willing to bet the MySQL nature of the project allows for graceful integration with a website that accepts user submissions.
When is it worthwhile to go with proprietary software? When you don't have technical IT staff to set everything up and you require detailed support, you'll get good enough assitance. When you want face-to-face communication and ongoing solutions you should hire a smaller IT staff and use open source solutions to problems that have already been solved by the community. Planning on creating your own proprietary applications? Prepare to spend a lot of money.