ok, but let's continue with the brainstorm here :)
I can already see one drawback of the "button" version: some users could not notice it (unless it's very apparent) and ignore the error. Having a huge error message jump into your face could save some support nerves. ;)