I have also had this problem, and from what I understand, here's the reason:
There are 4 sections to the headset cable plug, left audio, right audio, microphone and ground. The problem is when the microphone and ground contacts are momentarily touched, the iPhone detects this as if the user clicked the microphone button. The "Play song" command is run if you don't have a song playing, a "Resume playing song" command is run if you have a song paused, or a "Pause song" command is run if you are listening to a song.
I have had this happen with the Apple headphones and others that have a microphone. So far, this has not happened with regular headphones (ie no microphone).
The only solution I can think of that keeps using an already 'in use' design is to have 2 places to plug in headphones, 1 for the earbuds and 1 for the microphone. Sadly, this isn't really practical. However, I guess it would be possible to make a plug that is longer and use that area for the microphone, but it would require a lot of work that probably won't happen.
Or, better yet, make is so that to start/pause a song, you have to hold the mic button for 1 second or something. I think that would be awesome because it keeps the functionality without adding too much more work for the end user...