a) Render the scene first, then clear the depth buffer, then render the weapon model. Clearing the depth buffer should be fairly cheap nowadays.
b) You may be able to divide the depth buffer range, at the cost of precision. For example, map the weapon model to use the first 10% of the depth buffer, and let the scene use the remaining 90%. Might need careful tweaking to minimize Z fighting.