If the standard grid row action fires, you end up with tow actions going to your controller.

The key to changing this behaviour is the 'openGridRow' javascript funcion, which normally looks like this:

function openGridRow(grid, event){
                    var element = Event.findElement(event, 'tr');
                    if(['a', 'input', 'select', 'option'].indexOf(Event.element(event).tagName.toLowerCase())!=-1) {

The function is lcoated in magento's grid.js

Looking at the standard functionality you can see that the event is cancelled if the clicked item is an element of types 'a', 'input', 'select' or 'option'

The only thing I needed to do to change this behaviour was to implement my own version of the function, and ad the 'img' element to the list of elements.

Nice and easy, but a bit hidden.