It may be possible to do this with textures, but this is how I'd do this:
(*Make an example surface*)
surface = Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2}]
(* Make a 3D curve. Its height matches the surface's *)
line = ParametricPlot3D[{x, y, Sin[x + y^2]} /. {x -> Cos[theta],
y -> Sin[theta]}, {theta, 0, 2 Pi}, PlotStyle -> Red]
(*Combine the results*)
Show[surface, line]