I\'ve reviewed many other posts on here and have become pretty familiar with the Coalesce function, but I haven\'t been able to figure out how to do this specific task.
I bumped into similar problem before - and the only way I could resolve this (without using cursors), is by creating a CLR aggregate function. Here's an example in C# (and in VB): http://technet.microsoft.com/en-us/library/ms131056(v=SQL.90).aspx
I believe it just does what you need: concatenation.
Combining your example and the CLR, to achieve what you want - the SQL would look like:
SELECT
c.CommissionPercent
, dbo.MyAgg(cat.Category)
FROM #tCommissions AS c
JOIN #tCategories AS cat ON c.CategoryID = cat.CategoryID
group by c.CommissionPercent