I was trying my hands on .NET 3.5, and discover that Gridview was firing Rowcommand twice for my ImageButton that is draw using ButtonField Column. Later I found that this is a bug/unexpected behaviour from out of the box Gridview. I found some solution on internet that can be seens in detail here:
It mainly suggest to use TemplateField column with imagebutton, as Imagebutton is not quite compatible with ButtonField. Rest you can read above for details on it.