Assuming you only have discrete data and no access tot the function that generates the data,
colF = Interpolation[data[[All, {1, 3}]]];
ListLinePlot[data[[All, {1, 2}]],
ColorFunction -> Function[{x}, If[colF[x] <= 0, Red, Blue]],
ColorFunctionScaling -> False]
with the function available i would use Plot instead
Plot[Sin[x], {x, 0, 10},
ColorFunction -> Function[{x}, If[Cos[x] <= 0, Red, Blue]],
ColorFunctionScaling -> False]