This is an auxiliary template allowing to encode "|" within template parameters. It is necessary if the character is used in wiki table syntax, or if the parameter is automatically wikilinked and you wish to use a pipe to specify different link text from the target page name. In other cases it is better to use "|".
This template cannot be used for putting the character as text in a wiki table; in that case, again, "|" can be used.
Note that no special template is needed for "!" (exclamation mark).