Since $f(0)<f(1)<f(2)<...,$ we see that $f(n)\ge n\;\forall \;n\ge 0.$ Now if $f(n)=n\;\forall \;n$ then this indeed a solution.
Suppose now $m$ is the smallest element with $f(m)>m.$
Consider the function $g:S\to S$ given by $g(n)=f(n)-n,$ it is clearly nondecreasing $^{(*)}$, so
\[g(0)=g(1)=...=g(m-1)=0<g(m)\le g(m+1)\le g(m+2)\le ...\]and the given condition is equivalent to $g(n)\ge g(f(n))\;\forall \;n,$ so if we let $k=g(m)$ we'll get $g(m)\ge g(m+k),$ which immediately gives (due to $(*)$)
\[g(m+k)=...=g(m+1)=g(m)=k\]then we reapply the given condition on $n=f(m)=m+k,$ we obtain $g(m+k)\ge g(f(m+k))=g(m+2k)$ so again, by $(*)$ we obtain
\[g(m+2k)=...=g(m+k+1)=g(m+k)=k\]and we keep repeating this, we see that $g(n)=k\;\forall \;n\ge m,$ therefore
\[f(n)=\begin{cases}
n & \textrm{if\;\;}n<m \\
n+k & \textrm{if\;\;}n\ge m
\end{cases} \]which is indeed a solution (notice that if $m=0,$ the first part is empty, so $f(n)=n+k \;\forall \;n\geq 0$).