First, WorkSta is a deprecated view that was old as of NS6 and only exists now to catch the odd whatever that might have been missed in upgrades. Use vComputer instead.
Second, to use an alias for a table that is longer than the table name itself almost 100% defeats the purpose of having an alias at all, other than if you're trying to confuse the ... out of someone.
Third, if you use VComputer, the OS Name is already in there, saving one of your joins. The OS Name is also in wrksta... hmmm... Very strange SQL.
The OU is saved in Inv_OU_Membership if you've organized these per AD groups and imported them with the AD Import. Here's something that got me pretty close to your information, except then you'll have to put some sort of filter on the ou.distinguishedname. See if this helps: (PS> You'll notice I pulled a join or two out of it based on what I believe is already included in the VComputer view)
SELECT v1.[Name],
t1.[Device ID] as 'Drive',
t1.[Size (Bytes)] as 'Disk Size',
t1.[Free Space (Bytes)] as 'Free Space',
v1.Guid as 'ResourceGuid',
v1.[User] as 'Primary User',
v1.[OS Name],
ou.[Distinguished Name]
FROM vComputer v1
Left JOIN vHWLogicalDisk t1 ON v1.Guid = t1._ResourceGuid
JOIN Inv_OU_Membership ou on ou._ResourceGuid = v1.Guid
WHERE LOWER(t1.[Description]) LIKE '%local fixed disk%'
AND t1.[Size (Bytes)] > '2000'
AND t1.[Free Space (Bytes)] < '4000000000'
AND v1.[OS Name] LIKE '%Server 2003%'
ORDER BY v1.Name