There are a couple of plugins here that leave 1 slot reserved and everytime a player with a reserved slot flag joins it kicks a player with highest ping or shortest playing time always keeping 1 slot free for another player with the reserved slot flag. This will keep happening untill the server is full of players with the reserver slot flag. This means a 20 slot server would only ever have 19 players on it unless all the players have the reserved slot flag then it would be 20/20.
One of the plugins also allows you to redirect people joining a full server as they might not realise the last slot is reserved, it can also redirect people instead of kicking them.
From what i have read there has to be a slot free for these plugins to work, it needs a player to connect to figure out his access flags and then decide what to do, kick / redirect etc. If the server was full steam would return server full before this could happed. Also if you decided to hide the reserved slot but all public slots were full (so the server looked like 20/20 even though it is 21 as 1 slot is hidded) steam would still return server full, to connect to a hidden slot a player with the reserved slot flag would have to open the game console and connect, to much hassle for most players though.