First, let me show how to prove that some NP-complete problem using linear space just given the existence of some NP-complete problem.
Suppose that $L$ is NP-complete. In particular, $L$ runs in nondeterministic time $O(n^k)$ for some $k$, and so uses $O(n^k)$ space. Construct a new language $L’ = \{(x,1^{|x|^k}) : x \in L\}$. Given an input to $L’$, we can first verify that it is of the form $(x,1^{|x|^k})$, and then run the nondeterministic algorithm for $L$, which now runs in linear time and space (since the length of the input is $|x| + |x|^k$). Conversely, $L’$ is still NP-hard, since you can easily reduce $L$ to $L’$.
The technique illustrated above is known as padding, and is very useful in computational complexity.
Second, why does this not show that all of NP can be solved in linear space? The fact that $L’$ is NP-hard means that every language $A$ in NP can be reduced to it in polynomial time. If the reduction works in time $O(n^k)$, we can use the linear space algorithms for $L’$ to solve $A$ in space $O(n^k)$, since this is the size of the input to $L’$.
It is expected that NP is not contained in $\mathsf{SPACE}(n)$, but we don’t know how to prove it. Indeed, since L is contained in $\mathsf{SPACE}(n)$, if we could prove that NP is not, then we would separate L from NP, a separation which isn’t known at the moment. See this answer. It is known, however, that NP is different from $\mathsf{SPACE}(n)$; see this answer.