I'm trying to gather effective ways that others have solved the following problem. At work we've been forced to release a software patch (to be installed on end-user systems) that we only want visible to a specific customer. The custom code is in its own source-control branch. The problem is we have two parallel code lines (and build scripts) to keep in sync, and every time we patch the original code we have to patch and test the customer-specific code.
I'm curious, how do other organizations handle this scenario? We're open to business solutions and not just technical (source-control related) ones. For example, we've talked about telling the customer they can't receive updates on that branch.
Our branching strategy is like this (based on the Visual Studio TFS Branching Guide, although we're using Subversion for it)

:
hgorgitI might suggest that you look at using Patch Queues (Mercurial Queues Extension or Stacked Git) but I don't know if TFS has anything similar.svnmeans they don't clutter up your normal workflow. If Patch Queues look like they might be useful, you could try them out using git-svn or hgsubversion. Using a DVCS front end to smooth out a tricky workflow insvnmight even encourage people to consider moving to a DVCS wholesale, to gain all of the other benefits.