É muito útil em todos os cenários em que uma parte da classe é gerada por alguma ferramenta personalizada, pois permite adicionar lógica personalizada ao código gerado sem herdar a classe gerada. Btw. existem também métodos parciais pela mesma razão.
Não é apenas sobre a interface do usuário, mas também outras tecnologias, como o Linq-To-Sql ou o Entity Framework, usam bastante isso.