Hi,
I haven't had much time to play around with it, but this seems to work ok-ish:
NLSol = NDSolve[{Derivative[1][cf][t] == -400. cf[t] + 124450.79348 Sin[100 \[Pi] t] - 400. Sign[-0.4 Cos[100 \[Pi] t] + TriangleWave[1000 t]] vdc[t], Derivative[1][vdc][t] == 1000. cf[t] Sign[-0.4 Cos[100 \[Pi] t] + TriangleWave[1000 t]], Derivative[1][a0][t] == 50 (cf[t] - cf[t - 1/50]),
cf[t /; t <= 0] == 0, vdc[t /; t <= 0] == 0, a0[t /; t <= 0] == 0}, {cf[t], vdc[t], a0[t]}, {t, 0, 0.5}, Method -> {"DiscontinuityProcessing" -> False,
"TimeIntegration" -> "Adams"}]
At least in the sense that it integrates over the entire interval. Then you can plot it:
Plot[{cf[t] /. NLSol[[1]], vdc[t] /. NLSol[[1]], a0[t] /. NLSol[[1]]}, {t, 0, 0.5}, PlotPoints -> 200, PlotStyle -> {Blue, Red, Green}]

Cheers,
Marco