<p>Our company uses Citrix to remote into a terminal server for remote users to launch smart client apps within a virtual window on their machine.</p>

<p>The problem is that smartclient apps are being downloaded each time the user launches them eventhough the version on the remote citrix server has not change.  This is due to the user's profile being purged each time they close their Citrix session.</p>

<p>Is there any way to avoid this and still continue to purge the user's profile?  Not purging the profile leads to wasted space on the citrix servers and corrupt profile issues.</p>

I can't speak to details on Citrix servers.  However, with ClickOnce you have no say over where an application is installed.  It's installed under the user profile, no ifs, ands, or buts.  One of the major goals with ClickOnce was improved security and installing apps to the profile makes that easier.   So, if you're clearing the profile, you're stuck.
However, couldn't you just deploy the app to the Citrix server without ClickOnce?  Most .Net apps can just be xcopy deployed, so it seems it would be pretty easy to write a few batch files to copy the latest deployment to your Citrix server and skip ClickOnce all together.