I think I've pretty decently avoided this pitfall - in fact, I usually bug other people to *let* me read for them
The best way to avoid being a vending machine is to start out with clear boundaries. Before I read for anyone, I give them "the speech". In it, I basically highlight that the tarot isn't an excuse for letting someone else make choices for you (that is why I don't do yes/no or "should I..." readings).
I have flat-out refused questions phrased in a manner I usually allow. For example, my former boss asked, "What will be the signs if my boyfriend cheats on me?" She was obsessed with the cards, and giving her an excuse to blame her boyfriend for cheating made me very uncomfortable. I told her I wouldn't read for that question.
If I read for the person on a regular basis, I make my boundaries clear. I won't read for certain types of questions, questions that make me uncomfortable, and I *do* get worn out if I read too much*. This makes it pretty easy to say "no" when I need to, because I know they are aware of my limits ahead of time.
[*This was actually a harder one for me, as I'm not really a fan of "New Age"-y stuff, and admitting that tarot readings give me energy surges and crashes is pretty hard to explain to someone without me sounding crazy. So I went with, "it's pretty weird, but in these three specific situations, I totally crash after reading. I know it sounds crazy, I don't know why, but I won't read in those situations for you."]