Showing the messagebox in the validating event shouldn't cause any problems.
Most of the problems come from what you do in response of the answer to the messagebox...
A datagridview appears to me to be a complex set of controls within which the internal focus can shift from control to control.
Hope you don't mind Peter ;-) I don't think that displaying a Message Box in a Row Validating event would, OF ITSELF, cause re-firing of that event.
Program flow would simply move from the event's sub to the (modal) messagebox and then straight back to the next succeeding line in the event's sub.
But such an event's sub is unlikely only to show a Message Box and it is fairly easy to see how code within that sub could itself cause re-firing.
This is because "focus" is an intermediate state when that event fires. That row is only "being left" because it is going somewhere else. So the system then raises the Row Validating event. writing debug output - you will see that the Row Leave event is fired before the Row Validating event but that doesn't really invalidate the above description because the Row Validating event has an e.cancel argument which, if set to True, is going to roll-back the focus changes.That is, the system gets a message that focus is to move to yet somewhere else. But to go somewhere else, it has to leave where it is at the moment: where's that? So I think the answer to your first question is No: showing a Message Box does not, OF ITSELF, have any side effects.