Handling large arbitrary JSON objects where I need to operate on their keys but don't need to work with their values by unmarshaling to map[string]interface{}. The alternative would likely be code generation of struct definitions with JSON bindings, which is likely preferable if you already have code generation in your project, but can be an overhead in smaller ones.
It can also be used to create your own syntactic wrappers around API's which consume interface{} such as encoding/json and database/sql:
Unmarshal(r *http.Response, dst interface{}) ([]byte, error)
and BulkInsert(tableName string, columns []string, values [][]interface{}) (time.Duration, error)