Oggi, parlando con il mio collega Daniel, e' uscita fuori una situazione interessante. Supponiamo che avete un tool che vi genera una classe partial che implementa IDisposable:
using System;
partial class Foo : IDisposable {
    public void Dispose() {
        Console.WriteLine("implicit");
    }
}
Se volete cambiare il comportamento del Dispose senza toccare il codice generato sopra, basta implementare esplicitamente l'interfaccia IDisposable:
using System;
partial class Foo {
    void IDisposable.Dispose() {
        Console.WriteLine("explicit");
    }
}
A questo punto uno using(Foo foo = new Foo()){} stampera'...