It really does mean that the system should be rebooted.
fsck implementations are typically careful about returning this code only when necessary: for example, e2fsck returns it if it corrected errors on the root file system, while it was mounted (whichit is typically mounted read-only until it’s been checked). You shouldn’t get it on an external drive.
Note that you should check the documentation for the specific checkers being used. For example, fsck.fat doesn’t use the same exit codes, and blindly assuming that an exit code of 2 means to reboot could lead to surprises.