The only time I ever use it is as a generic argument, where I'd really like two things instead of one generic argument.

For example, a List<Tuple<string, int>> or an GenericEventArgs<Tuple<string, TcpClient>> or some such.