Last night I spent some time pulling out the changes I've made to my Drupal install (i.e. this website) and turning them into patches. So far, I've submitted four patches to the Drupal issue tracker. One was rejected on the grounds that something similar was already in CVS, and a second because it was too picky (I can't abide error messages if they are avoidable, and all my patch did was fix a trivial error which didn't affect how Drupal runs). The other two are still in the queue, so they might make it in yet.
Aside from anything else, I've learned two important lessons about attempting to contribute to Drupal (which are possibly true of trying to contribute to any open source project):
My motivation for submitting patches is so I don't have to maintain my patched versions. I always encourage people who modify open source software to try to get their changes incorporated into the main source tree, rather than maintain a fork themselves. But, on this occasion, because I am quite picky, I may find myself in the position of maintaining my own fork of Drupal so I can keep the features I've added which I find useful.