Regardless of how I pay, I always tip in cash. In full service restaurants, the server needs to share the tip with the chefs and bus people (although some places are now offering tipping the chefs. I also inquire, unless I already know, if they pool the tips. In one restaurant, a friend and I found out that they pool tips, so to our regular server, we stopped tipping and gave her a check during the holidays made out to her only.
Places where I receive exceptionally poor service, I leave a penny and complain to their manager. So, I believe that tipping is good.
Also for compulsory tips, you can ask to have it removed. If they still force you, complain to the manager and write them. Then also tell your credit card company and have that compulsory tip either removed or lowered.