A purist is someone who knows how things should be and shouldn't be done. For them, there's a correct way of doing things and plenty of wrong ways. A typical Web purist knows how to use the H1 tag properly and will laugh at anyone that uses a tables for layout. What truly defines a purist is that it can't accept to do things any way other than the right way.
An insistence on the traditionally correct way of doing things.
Purists are right
And that's where the problem lies, they are technically correct. Things should be used the way they were meant to be used and a purist has usually studied the various possibilities. It's difficult to argue with a purist because he's right.
What's wrong then?
Doing things the purist way is sometimes very difficult and time consuming. You could do the whole layout in a few hours if you used tables, but now that you have to use CSS, you're in for a few days (it won't be much of a problem once people use standard compliant browsers). Furthermore, all the time spent arguing is time not spent working. Many hours were wasted just to find the right name for an object. Naming is hard, as Phil Karlton said:
There are only two hard things in Computer Science: cache invalidation and naming things.
There's no real solution except to learn to deal with a purist. Don't give up on every request, but try to explain that even though his method is good, it may not be appropriate for the project/budget/time constraint.
There's one thing I came across that was a revelation to me. I was looking for the antonym to purist/purism with little luck until I found this antonym suggestion for Pure from synonym.com:
INDIRECT (VIA theoretical) -> applied
The opposite of pure is applied! The research for purity from purists is all good, but once you get down to work, sticking to the theory might not always do it so you may have to cut corners short and get a little dirty. Doing things the purist's way is not always practical and that's why you shouldn't do as the purist wants.
What about [insert purist topic here]?
I try to do things the right way as much as possible, but you probably noticed that I try to refrain myself from being overzealous about topics. I believe that H1 should be used for the element that represents the title of the page (W3C even has a tip page about this). Layouts should not be done with tables, tables are for tabular data and names should be as self-explanatory as possible, no acronyms (unless you have a very good reason, like if you don't use the acronym you will bust Windows' character limits on paths and file names).
Does it work?
In the end, as long as the thing works, what's underneath is not much of an issue. Build things the right way, but once things are built, if they work, then it's not problem... until you have to refactor it.
So, stop worrying, start doing.