Is Script also used to validate block, network, or any other data?
No. Scripts are only included in transactions and can only read some data from the transaction and the block the transaction is included in. Scripts are only used for transaction validation as they specify the conditions required to spend an output.
Seem like there are a lot of OP codes not in use or deprecated. Why were they added in the first place? Am I missing something?
To allow for scripts that can have a lot of different conditions. Those opcodes can be used to create smart contracts on Bitcoin.
There are some opcodes that are disabled (nothing is "deprecated") because they can be abused to perform various attacks on nodes verifying transactions containing them.