DBA328 (10/19/2012)
DBCC shirinkfile may not move data to other files. you can virtually move the data from the table to a different filegroup by creating a clustered index and placing it wherever you want
Shrinkfile with the emptyfile option does move data to other files in the filegroup, which is what the OP asked about.
Per BoL:
EMPTYFILE
Migrates all data from the specified file to other files in the same filegroup. Because the Database Engine no longer allows data to be placed in the empty file, the file can be removed by using the ALTER DATABASE statement.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability