I ran into this problem using a slightly complicated model, but made as simple an example as I could to identify the exact problem.

What I found was that, when solving a system of differential equations numerically, if NDSolve was asked to deal with both a floor function (e.g. Floor) and an algebraic transformation (e.g. y[t-5]), then it will not work. For example, the code

NDSolve[{y'[t] == y[t - 7]*Floor[t], y[0] == 3}, {y[t]}, {t, 0, 2000}]

returns the errors

NDSolve::ihist: "Conditions given at t = 0.` will be interpreted as initial history functions for t/;t<=0.. "NDSolve::ndssc: Step size changed sign at t == 14.`. and it only Interpolates from

[{{0,14}},<>]

Even though running NDSolve with a function involving either y[t-7] or Floor alone works fine. (For example, NDSolve is able to compute the following two lines of code.)

NDSolve[{x'[t] == Floor[t], x[0] == 0}, {x[t]}, {t, 0, 2000}]

NDSolve[{y'[t] == y[t - 7], y[0] == 3}, {y[t]}, {t, 0, 2000}]

Finally, and most perplexingly, if you run NDSolve on the previous two functions together instead of separately,

*even though they do not depend on each other*, it still returns errors as in the first example.

NDSolve[{x'[t] == Floor[t], y'[t] == y[t - 7], x[0] == 0,

y[0] == 3}, {x[t], y[t]}, {t, 0, 2000}]

NDSolve::ihist: "Conditions given at t = 0.` will be interpreted as initial history functions for t/;t<=0.. "NDSolve::ndssc: Step size changed sign at t == 14.`. Interpolates from

[{{0,14}},<>]

Does anyone know anything about an error like this?