I doubt ERT can be changed, it probably sets `debug-on-error' for a reason, i.e. without it it simply couldn't work. As far as I can tell, the only good option is to never trigger an error just because a directory looks like it might be Git, but Git is not installed.
Also consider this from a user point of view. Let's say I have nothing to do with programming at all and don't have Git installed. Someone emails me a cool Emacs package as a tarball and accidentally archives `.git' along, because he is a developer. I unpack it, open some file and now my Emacs warns me that Git is not installed. But why? I didn't even ask it to do anything. It itself decided to do something (because it saw a `.git' directory), failed (Git is not installed), and now warns me. From my point of view, if there is a failure for action that wasn't direct result of user order, Emacs should stay silent.
In other words, I think there are two sane options here:
1) Simply check if Git is installed before doing anything Git-related from `find-file-hook' callback. If it is not installed, just silently don't do anything. Reserve errors and warnings until the user actually ask you to do something Git-related, not simply to open a file.
2) Make sure that this error is always demoted to a warning, even if `debug-on-error' is t.
I like option 1 better.
Paul