I also work for an IT contractor, although fairly small so I can go smack the sales guys on the head a few doors over as needed. I go for option B/E all the time. In my view, IT is kind of like a a bottomless pit you throw money into. You can throw more and more, but there is ALWAYS something else you can do. There's always an extra backup system you can add, an extra redundancy, an user experience you can improve, etc. But businesses have finite IT budgets, and all the slick sales guys in the world won't change that. So seeing as how there's a practically infinite opportunities to spend IT money in an organization that will have tangible benefits, I don't see the point in letting the sales guys get away with wasting their money. If I feel its a waste, I tell them that, and point out 2 or 3 things to them and the sales guys that should be higher priority. In my experience, the sales guys in IT are some of the most easily influenced by other salesmen I've ever met. A vendor comes through, gives a demonstration of their network appliance or software package of the week, tells them how all their customers will be knocking down the door to give them their money to buy it, and uses every tired old pitch technique in the book. The same techniques the sales guys use on their customers every day. And they buy it hook, line, and sinker. They go out and tell all their customers they have to have X, even when they themselves don't really understand what it does, but the vendors salesman told them so. Someone needs to inject some reality into the situation, or you wind up with a customer that has spent their entire budget on the latest buzzwords and their basic IT infrastructure is a disaster. Whether we spent their IT money on buzzwords, or we spent their IT money on things they needed, we still got their money. But one way leads to the customer saying at the end of the year "We spent $x on IT with you guys, and we still have tons of problems! Our PC's crash, our network is slow, our backups don't work, wtf?" and the other way leads to building a long term relationship with the customer that will keep them as our customer.
Uncontrolled greed is the enemy of IT contracting in my mind. We are all in business to make money, but wanting to make money and being blinded by greed are very different. If every time you went to the doctor, he tried to sell you some new wonder drug you can only get from him, the first you might be inclined to believe him, after all he is the doctor, he knows more about medicine then you do. So you would buy it, and the doctor would make extra money. But when the medicine didn't make you feel better, and everytime you went back he wanted to sell you a new, different wonder drug, that THIS time would solve all your problems, pretty quickly you would find a new doctor. Next thing you know, the practice that doctor has built up over a decade is gone. The same thing for IT. Most of our customers don't know what they have, they don't understand it, they don't know what they need. They rely on us to tell them. But if we tell them lies, we will make a lot of money in the short term, but eventually they will get tired of shoveling money at us and seeing no results.
Besides, is helping some sleazebag salesman make an extra $1000 in commission (that he would not share with you even if he saw you laying half dead in the gutter) worth your professional ethics?