Initial conditions are always given at $t=0^-$, because they define the state of the system before any input is applied, and - by definition - the input is applied at $t=0$. The state at $t=0^+$ is determined by the initial conditions as well as by the input signal.
The unilateral Laplace transform can be used to solve LCCDEs with initial conditions $y(0^-), y'(0^-),\ldots$ because of the definition
$$\mathcal{L}\{f(t)\}=F(s)=\int_{0^{\color{red} -}}^{\infty}f(t)e^{-st}dt\tag{1}$$
from which it follows that
$$\mathcal{L}\{f'(t)\}=sF(s)-y(0^-)\tag{2}$$
Note that it's common to write initial conditions as $y(0),y'(0),\ldots$, when actually $t=0^{-}$ is meant.
EDIT: Concerning the example in the book: if there is no Dirac delta impulse in the current $i(t)$ at $t=0$, the capacitor voltage $v_c(t)$ cannot jump at $t=0$. Consequently, $v_c(0^-)=v_c(0)=v_c(0^+)$ must hold.
In general, the initial conditions define values of the output signal and its derivatives right before the source signal is switched on. It can be the case that the limits of the output and its derivatives exist at $t=0$. If that is the case, it doesn't make a difference if we use $t=0^{-}$ or $t=0$ or $t=0^{+}$ because the corresponding function values are all the same. If the output signal or its derivatives are discontinuous at $t=0$, then the distinction becomes important, and the initial conditions define the values just before the discontinuity, i.e., at $t=0^{-}$.