I had an instance in one of my demo machines where every time i tried to add a workflow to a list or library i would get the dreaded... "Unknown error"
After some tests and trying stuff out (and remembering that I had found this the hard way about a year ago and not blogged about)... anyway to the point.
The above may happen if you have a:
URL that contains a port number or an underline character for example WS03R2EE_SQL:81 will not work
I have also found that if you try to do this with web infopath forms (infopath over the web)
The solution is to ensure that the url obviously does not have these characters.
1. Create a host entry (if you are running a vpc) or dns
2. Add it to the host header section in IIS manager
3. Add the alternate access mapping (AAM) to the web application.