and the shell would replace $d1 with text like /home/acctname/projects/blog/ and would
then show me the contents of .../blog, like you would expect any tab-completion to do.

Now, both ubuntu wheezy/sid and fedora 16 just \-escape the '$', and naturally
there are no completions to show.

You can see this behavior in action in an OSX Terminal window. On 10.8, do something
like

ls $HOME/ to see what I mean.

Is there a bash shell variable or option that can restore
the old behavior?

man bash suggests this is a bug:

complete (TAB)
Attempt to perform completion on the text before point. Bash
attempts completion treating the text as a variable (if the text
begins with $), username (if the text begins with ~), hostname (if
the text begins with @), or command (including aliases and functions)
in turn. If none of these produces a match, filename completion is
attempted.

I get the above described completion when a token starts with '~' or a letter. It's
just '$'-completion that's broken.