Since you're using similar characters (and therefore widths), using a \phantom
would align the content the way you want it to.

\documentclass{article}
\usepackage{amsmath}
\begin{document}
Original:
\[
f(x) = \begin{cases}
-x &\text{for every} \enspace x \in [-1, 0), \\
\hphantom{-}d &\text{for} \enspace x = 0, \\
2 - x &\text{for every} \enspace x \in (0,1].
\end{cases}
\]
With \verb|\phantom|:
\[
f(x) = \begin{cases}
-x & \text{for every } x \in [-1, 0), \\
\hphantom{-}d & \text{for \phantom{every} } x = 0, \\
2 - x & \text{for every } x \in (0,1].
\end{cases}
\]
\end{document}
More generally you can use aligned
and friends. For example, in this case, you want 3 alignments, really. One for the case, second for the condition and then a third for the range alignment. For this, use alignedat
.
I've adjusted the alignedat
solution/example to emphasize the alignment when having different conditions.

\documentclass{article}
\usepackage{amsmath}
\begin{document}
Original:
\[
f(x) = \begin{cases}
-x &\text{for every} \enspace x \in [-1, 0), \\
\hphantom{-}d &\text{for} \enspace x = 0, \\
2 - x &\text{for every} \enspace x \in (0,1].
\end{cases}
\]
With \verb|\phantom|:
\[
f(x) = \begin{cases}
-x & \text{for every } x \in [-1, 0), \\
\hphantom{-}d & \text{for \phantom{every} } x = 0, \\
2 - x & \text{for every } x \in (0,1].
\end{cases}
\]
With \verb|alignedat|:
\[
f(x) = \begin{cases}
\begin{alignedat}{3}
&{-}x & \quad & \text{for every } & abc &\in [-1, 0), \\
&\hphantom{-}d & & \text{for } & d &= 0, \\
&2 - x & & \text{for every } & ef &\in (0,1].
\end{alignedat}
\end{cases}
\]
\end{document}