How can P2Pool charge a fee? P2Pool is an open source peer to peer mining pool. It currently charges a fee of 0.5%.

Is it possible to just fork P2Pool protocol and eliminate the fee? Has this been done? If so, how can P2Pool still retain users when a cheaper alternative remains? If this hasn't been done yet, why not?
Since November 17, 2011 no fee is charged.  Instead an optional donation of 0.5% is sent to the author of P2Pool to support future development.

If you don't want to donate to the author you can run P2Pool like this:

python2 run_p2pool.py --give-author 0.0 [USERNAME] [PASSWORD]


The 0.0 is a percentage of your earnings and can be set to whatever percentage you like.