What is the difference between Special Honest Verifier Zero-Knowledge (SHVZK) and Honest Verifier Zero-Knowledge (HVZK)? Sometimes I see one term being used, other times the other. Do they mean the same thing?
Special Honest Verifier Zero-Knowledge is a particular case of Honest Verifier Zero-Knowledge; that is, if a protocol satisfies SHVZK, it satisfies HVZK. SHVZK has been introduced to simplify discussions about $\Sigma$-protocols. In $\Sigma$-protocols, HVZK is typically proven as follows: fix an arbitrary challenge $e$, and show that it is possible to efficiently generate a random transcript $(c, e', a)$ for a $\Sigma$-protocol, conditioned on $e = e'$. If such a simulator can be exhibited, then the $\Sigma$-protocol is clearly HVZK. The term SHVZK refers to $\Sigma$-protocols where this particular condition holds.
Note that similarly, the term special soundness is generally used to refer to a sufficient property for the soundness of a $\Sigma$-protocol (typically, that given two transcripts $(c,e,a)$ and $(c,e',a')$ for the same $c$, it is possible to extract a witness efficiently), which is typically satisfies by most $\Sigma$-protocols. Each time, "special XXX" simply means "a specific notion which is sufficient for XXX".