Solution based on graphics primitives
You might consider using this approach:
h = Graphics[Line[{{0, 1/2}, {0, -1/2}}]];
Graphics[{
{Thick, Arrow[{{.1, 0}, {.9, 0}}]},
{Red, Thick, Arrow[{{.5, 0}, {.5, -.5}, {2, -.5}, {2, -.1}}]},
Arrowheads[{{Automatic, Automatic, h}}],
{Red, Thick, Arrow[{{1.1, 0}, {1.9, 0}}]},
Style[{Text["X", {0, 0}], Text["Y", {1, 0}], Text["Z", {2, 0}]},
FontFamily -> "Helvetica", FontSize -> 20]
}]
that produces this:

For the curved lines you can play with:
Graphics[{Arrow[BezierCurve[{{0, 0}, {1, 1}, {2, -1}}]]}]
Solution based on Graph
This solution is a bit more convoluted than the previous, but with some tweaking it works.
h = Graphics[Line[{{0, 1/2}, {0, -1/2}}]];
vlabel[lbl_] := Graphics[Text[Style[lbl, FontFamily -> "Helvetica", FontSize -> 20],
Background -> White]];
verts = {"X", "Y", "Z"};
edges = {"X" -> "Y", "Y" -> "Z", "X" -> "Z"};
vcoords = {{0, 0}, {1, 0}, {2, 0}};
eshapef = {"X" \[DirectedEdge] "Y" ->
({Thick, Black, Arrow[{{0.1, 0}, {.9, 0}}]} &),
"Y" \[DirectedEdge] "Z" ->
({Thick, Red, Arrowheads[{{Automatic, Automatic, h}}],
Arrow[{{1.1, 0}, {1.9, 0}}]} &), "X" \[DirectedEdge] "Z" ->
({Thick, Red, Arrow[{{0.5, 0}, {0.5, -.5}, {2, -.5}, {2, -.1}}]} &)};
Graph[{"X", "Y", "Z"}, edges,EdgeShapeFunction -> eshapef,
VertexCoordinates -> vcoords,
VertexLabels -> Table[i -> Placed[i, Center, vlabel], {i, verts}]]
