The language doesn't push you towards interfaces implemented once, but many developers indeed persist doing it for no reason at all. With proper code review we're able to make that practice go away on the projects I'm working on.
Yes. You have two choices: Interface implemented once, or virtual on all your public members.
I personally think Interface is the sane choice.
Would be nice if the .NET devs let us mock POCO's though...