In case anyone is interested, I've done this by (a) having my website create a cookie if the user is allowed to access tech support by chat, (b) creating two 'Technical Support' departments, one (id=5) which has no staff in it, and one (id=6) which has the tech support staff in and (c) changing the Live Support -> departmentstatuscombo template to
Code:
<select name="departmentid" class="departmentselect">
<{foreach key=key value=item from=$onlinedepartments}>
<{if $_TPL[COOKIE][TechChatAllowed] == 1 or $item[departmentid] != 6}>
<option value='<{$item[departmentid]}>' style='background:#D5FFD5;color:#333333'><{$item[title]}> - <{$language[online]}></option>
<{/if}>
<{/foreach}>
<{foreach key=key value=item from=$offlinedepartments}>
<{if $_TPL[COOKIE][TechChatAllowed] != 1 or $item[departmentid] != 5}>
<{if $_TPL[COOKIE][TechChatAllowed] == 1 or $item[departmentid] != 6}>
<option value='<{$item[departmentid]}>' style='background:#EDEDED;color:#666666'><{$item[title]}> - <{$language[offline]}></option>
<{/if}>
<{/if}>
<{/foreach}>
</select>
This hides the 'real' tech support department if the cookie isn't there, and shows a 'dummy' tech support department which is always 'offline'.
It's not foolproof, but it does pretty much what we want.