Many of the examples given here are valid, but would work equally well with soft links (e.g. the "need one file in multiple places" problem).
A nice example for where hard links are really helpful is the backup software Dirvish:
Dirvish is a fast, disk based,
rotating network backup system.
With dirvish you can maintain a set of
complete images of your filesystems
with unattended creation and
expiration. A dirvish backup vault is
like a time machine for your data.
Dirvish creates backups at the filesystem level (i.e. it copies files, it does not create images), by copying files to a separate (backup) filesystem (such as an USB harddisk). Each time you make a backup, dirvish will create a separate, complete copy of the directory tree to be saved.
The trick is that if dirvish detects that there is already an older backup copy of the tree you are saving, it will automatically reuse files that have not changed, by creating a hard link in the new tree to the file in the old tree.
That way, each backup copy is a complete, self-contained copy of the directory tree, but at the same time only the changed files actually take up space in the file system.
In other words, you get the benefits of incremental backups (space savings) and full backups (easy retrieval) at the same time.
This is only possible because hard links are completely transparent to userspace tools.
This would probably also work with symbolic links (although you'd get problems when backing up data which uses symbolic links itself), but one advantage only possible with hard links is:
If you want to throw away old backups, you can simply delete the corresponding backup directory tree. Files only linked from that tree are deleted automatically by the filesystem (because their last hard link is deleted), but files that also appear in other copies remain on disk.