Half-Life bulletholes

How is the bulletholes, burns and tags in half-life(could be ut or q3) applied to walls?

Is it just a alpha blended quad thats a bit offset, and if it is, how do they avoid zbuffer errors?

Pretty much correct, z fighting is eliminated by using glPolygonOffset (in OpenGL at least). Also these quads are generally clipped to the world geometry.