The problem naturally restricts the set of feasible consumption vectors to $\mathbb{R}_+^S$ (in a sense, it's hard to eat -1 apples). A strictly positive vector $\mathbf{c}^*$ implies an interior solution which gives you clean, uncomplicated optimality conditions.
Let $\mathbf{\Delta} $ be some arbitrary vector in $\mathbb{R}^S$. Since vector $\mathbf{c}^*$ is strictly positive, the vector $\mathbf{c}^* + \alpha \mathbf{\Delta}$ is also strictly positive (i.e. feasible consumption) for $\alpha$ in some small enough neighborhood $[-k, k]$.
Let $\boldsymbol{\theta} \in \mathbb{R}^N$ be an arbitrary vector such that $\boldsymbol{\theta} \cdot q$ = 0. This means $\boldsymbol{\theta}$ is a zero cost portfolio and it's affordable to move consumption in the direction $\mathbf{\Delta} = D' \boldsymbol{\theta}$.
The basic idea is that if $\mathbf{c} = \mathbf{c}^*$ solves $\max_{\mathbf{c} \in X} U(c)$ then for any zero cost portfolio $\boldsymbol{\theta}$, we have that $\alpha = 0$ solves $\max_{\alpha \in \mathbb{R}} U\left(c^* + \alpha D' \boldsymbol{\theta} \right) $. Take the derivative with respect to $\alpha$ and you get an optimality condition which leads you to a state price vector.