I've done this with one of our installations. I had 2 document libraries, one I wanted to disply to local users, and one outside of the network (logging in via the internet). To do this, I had to specify some IIS variables to caputre the incoming IP address and wrap the document libraries I was displaying in XSLT if statements.
This hid 1 of the document libraries depending on what their IP address was.
I made these modifications in SPD using dataview web parts.
Here is part of the code:
<xsl:if test="$IncomingIP != starts-with($IncomingIP,150.216)" >
<xsl:template name="dvt_1"><xsl:choose>
<xsl:when test="$IncomingIP != starts-with($IncomingIP,150.216)">
<table border="0" width="100%" cellpadding="2" cellspacing="0">
<tr valign="top">
<td class="ms-vb" nowrap="nowrap">You are visiting the site off the campus network or from a residence hall. Please use the links below.</td>
</tr>
</table>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>
<table border="0" width="100%" cellpadding="2" cellspacing="0">
<tr valign="top">
<xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
<th class="ms-vh" width="1%" nowrap="nowrap"></th>
</xsl:if>
<th class="ms-vh" nowrap="nowrap">Download Path</th>
<th class="ms-vh" nowrap="nowrap">Title</th><th class="ms-vh" nowrap="nowrap">IncomingIP</th><th class="ms-vh" nowrap="nowrap">Modified</th></tr>
<xsl:call-template name="dvt_1.body">
<xsl:with-param name="Rows" select="$Rows"/>
</xsl:call-template>
</table></xsl:otherwise></xsl:choose>
</xsl:template>