5 state model is oversimplified, but you context switch when you go from running to blocked and another process is loaded to the processor and takes the 'running' state. Only one process can run in one cpu at a time (here, cpu loosly means one core, clearly modern 8 core cpu can run 8 processes at once). So any time one process stops running and another one starts running, that is a context switch.
context switches used to be rather expensive -- the cpu had to store its state on process going out (all the registers) in memory and load them back to resume when it started running again. Modern hardware has greatly reduced these costs, but it still isnt free. You don't want a process to get loaded (lets say, because its turn is up in a scheduler that juggles all the processes) and get booted right back out (because it needed some resource that isnt available right now) even on modern hardware, this burns clocks for doing nothing.