Customers vote every day, implicitly through how they prioritize, how they spend their time, and where they engage in transactions (or not). So instead of asking your customers and prospects for an explicit vote, your CRM system needs to listen much more carefully to discern when they have made a choice, and decode what it means about their level of satisfaction.
This means you need to have a much more systematic way of tracking and managing customer/prospect responses across several departments. The core technologies you'll need: a CRM system, a marketing automation system, a Web content-management system with good Web analytics, integration with your ERP and customer support system, and probably a data warehouse. But as I wrote previously, all of these systems will be rendered nearly powerless if you don't have a consistent way to identify your users and prospects. It's not good enough to tally by segment: your systems need to attribute the series of choices and votes to individuals.
People won't register or give you any good identifier information unless they think you are halfway relevant to their interests and believe you are trustworthy. Classically, the best way to get user identification info is to start very small, and ask only for the prospect's e-mail address in exchange for something of value. Initially, ask the user to opt-in only to a relevant newsletter — do not ask for a blanket opt-in. Way too many people will opt-out as they're already inundated with junk mail; and because in the low-trust world we live in, people will too often just say no.
Every time a customer or prospect returns to your site to look up a price or download something, they are voting again. In exchange for any detailed request, ask them for one more piece of information, such as state and country. Each time they return, this progressive registration technique gets them to gradually give you a ton of up-to-date information, including their preferences regarding newsletter subscriptions, product interest, etc. Of course, from day one you must respect their privacy.
Much of the mechanics for all this can be handled with a good CRM system integrated with a solid marketing automation system. In addition to the explicit profile-based scoring that sales typically asks for (e.g., "give me just Director and VP job titles"), add the implicit behavioral-based scores (e.g., "add ten points when they watch this video"). But for real voting, summary scores aren't enough. Record the timing and details of each customer and prospect interaction, so you have the time-series detail you need to analyze the voting patterns.
Once a lead is handed off to the sales team, you've got to deal with a new layer of the voting problem. Sales rep interactions tend to be much more personal, so they are poorly documented. Make sure that every customer e-mail conversation is captured in the CRM system (via "auto attach" features like Email2Salesforce), and integrate your phone system so that every dial from the desk phone is instrumented for customer ID, time / date, and length of call. Of course, you can't capture everything automatically (some reps make half their calls from their mobile phone), so make sure there are incentives for the reps to at least record the outcome of every conversation (because that's where the "vote" is).