Shrinking with EmptyFile will give you just as much fragmentation as shrinking without that option. It's not a magic good shrink.
If all you're trying to do is remove empty space in the file, do a once off shrinkfile and then rebuild the indexes.
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