Thread can do this
Thread[{a, {b, c, d}}]
{{a, b}, {a, c}, {a, d}}
But when above a, b, c and d are themselves Lists, for instance, used as a representation for 2D/3D points, it will not work as a naive generalization
Thread[{{a, b}, {{x, y}, {z, w}, {u, v}}}]
which just raises an error.
Here what is intended for is
{{{a, b}, {x, y}}, {{a, b}, {z, w}}, {{a, b}, {u, v}}}
So can it still be realized by Thread? If yes, how? If no, then do there exist any concise and efficient workarounds?