This posting is older than 6 months and can contain outdated information.
Hi Gaurav,
rest assured, that the kernel extension is not to blame. But, yes, of 
course there is a difference when you use the kernel extension:
With the kernel extension, Remote Buddy accurately can measure the 
beginning and end of a press of the Play button, so that if you press 
the button for five secs, the associated press and release events 
inside Remote Buddy will also be five seconds from one another, with 
frequent repeat events filling the time inbetween.
Apple's driver, on the other end, does not support any of this. It 
generates a press event *immediately* followed by a release event, so 
no matter how long you press the play button, the application will 
always be told you did it for zero seconds.
The same press of the Play (or Menu) button for 5 seconds will 
generate this (with timestamps):
Kernel extension: 
Press (0.5 s) ... Repeat (0.52s) .. Repeat (0.54s) .. Repeat 
(0.56s) .. .. Release (5.0 s)
Apple driver: 
Press (0.5 s) .. Release (0.5 s) .. completely ignores the remaining 
4.5 seconds of your button press
So, if you chose the wrong settings for your action, it will be 
executed repeatedly for the true duration of the button press with 
the kernel extension - and executed only once with Apple's driver, 
irrespective of how long you press that button.
If you only want your custom action to be executed *once* regardless 
of the length of your button press, be sure to choose the right 
settings in its actors:
- for keyboard actors, set "Operation" to "Single key press on button 
press".
- for AppleScript actors, set "Execute on" to "button press".
If you chose a built-in action and it misbehaves, please let me know.
Hope that helps.
Best regards, 
Felix