Sorry, but I don't care that you pissed about how SQL does it, you are stuck with it.
What you can do is to restore on any machine that has SQL installed and enough disk space, then rearrange the data as you wish, into multiple files etc., then take a backup and restore it to your target server.
In the process you might find that there is slack space in the files which you can SHRINK (before taking your backup) and thus have the smallest possible DB at that point. You could also possibly? purge some old data not relevant to whatever tasks you need to perform on the customer DB and, again, SHRINK and then BACKUP
Or remote connect to the Client's machine and perform your task there?
I doubt this is the case, but just in case of misunderstanding: you can PLACE the files wherever you like, the restore drives / paths don't have to match the original locations, but you have to restore each file in full. That includes if the client extends the MDF file to xxx GB but the DB only contains xxx MB of data, or if the LOG file has not been backed up and has grown huge, etc.