have found a crude yet effective simple remedy to the implicit guid datatype conversion issue.
I've been working with the problem where a GUID may be a NULL value and causes the error of not being able to convert value of string/char to uniqueidentifier .. from everything I've read so far it basically comes down to order of prescedence .. and that the unique identifier data type superceedes any functions you try to impose to do the val1 = val2 comparision with any form of Cast, Convert or IsNull work around.
What I eventually came up with, and this is going to sound very kindergarden coder so I appologize to all of those of you that are infinately more skilled in this area, just use a replace function call on the two values to remove the "-" in the guid and trim any spaces off and the error will not come up again
I think by saying (replace(rtrim(ltrim(val1,'-','') = (replace(rtrim(ltrim(val2,'-','') and replace(rtirm(ltrim(val1,'-','') and (replace(rtrim(ltrim(isnull(val1,''))),'-','') <> ''
you circumvent the implicit guid/unique identifier conversion and it will run for you