Weird - at least this version of expand works for me, and the source code suggests that it should work just as it does:
Q:\>copy con test.txt
blah a blah
^Z
1 file(s) copied.
Q:\>perl -w expand.pl test.txt
blah a blah
Q:\>perl -w expand.pl test.txt|perl -ple "s!\t!x!g"
blah a blah
Q:\>perl -w expand.pl test.txt|perl -ple "s! !_!g"
blah____a_______blah
Q:\>type test.txt|perl -ple "s! !_!g"
blah a blah
If expand is not working for you, maybe the code I linked to does work for you and you can reuse that?