I can see a problem if while clicking, ocassionally click on a enabled cell. This seems to get things out of sync.
Using CurrentCell.MoveTo seemed to handle this problem. Just make sure you also set the ColIndex so you are trying to put the current cell on a cell that is enabled.
private void gridDataBoundGrid1_CellClick(object sender, GridCellClickEventArgs e)
{
GridDataBoundGrid grid = sender as GridDataBoundGrid;
if (grid != null && !grid[e.RowIndex, e.ColIndex].Enabled)
{
grid.CurrentCell.MoveTo(e.RowIndex, 1);
}
}