In cryptography, an "initialization vector" (which can, in specific contexts, also be called "salt", "nonce", "spice" or "tweak") occurs not only in the context of block ciphers (as already pointed out), but also in the context of hash functions and stream ciphers.

The purpose of an "initialization vector" is usually to provide some randomness or uniqueness to some cryptographic transformation. Specifically, it is used in stream ciphers to guarantee uniqueness of the generated keystream and also in randomized hashes (to prevent pre-computation attacks).

It's important to note that, depending on the context, an initialization vector might have particular requirements: some uses require it to be random/unpredictable (or at least "randomish", like the output of a LFSR), while other uses just require uniqueness (in which case, it's better to use a counter to generate them). Regardless of that, the initialization vector is never expected to be secret.