An example of someone writing a better implementation of a program and taking over a protocol. DirectConnect was a centralized client-server file sharing program[1], with a client and server (both written in VB). DC++ was a C++ implementation that started out as 3rd party implementation of the client, and then IIRC the server. The original client/server were incredibly buggy, so DC++ client/server over-took the original client (they may have even extended the protocol).
[1]: Basically, you connect to a central server (that anyone can run), and you can share files with other connected to the server, chat with them (a single central chat room), private message connected users, and search files shared by connected users. Note: that some of this may be out of date as I'm mostly referring to the initial implementation.