A csv list can also be generated using "FOR XML"
I rewrote the final query using this method:
SELECT OfficeID,
(SELECT TOP(1)
C.StateAbbr
FROM dbo.OfficeCounty OC
INNER JOIN dbo.County C
ON C.CountyId = OC.CountyID
WHERE OC.OfficeID = O.OfficeID) AS StateAbbr,
STUFF((SELECT ',' + CountyName
FROM dbo.OfficeCounty OC
INNER JOIN dbo.County C
ON C.CountyId = OC.CountyID
WHERE OC.OfficeID = O.OfficeID
ORDER BY CountyName
FOR XML PATH('')),1,1,'') AS countrynames
FROM dbo.Office O
ORDER BY 2