You can just use a second texture for the model which has the decal on it or have the decal directly on the base texture (or place it there during runtime)
that's the normal way.
another way, is to render all geometry twice with it's own projection matrix .. but that's only feasible for high dynamic decals.
But if you render twice anyway, you could just use it to render the depth values and use a fullscreen pass for the decals, which would look better for randomly placed decals.
For the NCC-1701 I would either just place a second texture or integrate in the base texture in forward rendering