Move UV coords like Object coords? I want to have a decal texture on an object move based on the location of an empty.

It is possible to use Object coordinates projected from another Object using the drop down in the Texture Coordinate node. This allows you to project a texture based on the location of this object, usually an Empty. But that texture has to be mapped with Object coordinates, so it needs to be a procedural texture. I am looking for a way to do something similar but with UV coordinates so I can do it with an image texture.

I know it is possible to use drivers to change the mapping, but I'm not clear on the best way to do it. If there's a solution that doesn't require drivers that would be better.
As the texture is projected in the positive quadrant of the XY plane of the input vector, we need to translate the coordinates by (0.5,0.5,0.0), and clip them.

And to stop the texture from being projected on other places of the geometry (i.e. the backside), one can use a mask to limit the Z distance.

Now it's only a matter of placing and orient the empty for the needed projection.

Here's an example: