One example of where a binary tree is required is binary space partitions in computer graphics
http://en.wikipedia.org/wiki/Binary_space_partitioning
A binary tree is needed because the algorithm requires the preservation of the relationships between the nodes in the binary tree. There are many other algorithms where the structure of the tree is important, and so a hash table isn't an appropriate structure.
Another good reason for using a binary tree instead of a hash table is when you can't easily generate a efficient hash for your data items, but you can generate a comparison function.
Often for simple storage and retrieval of data a hash table is more optimal, but more complex to implement.