When I move a list template from one Site Collection to another all the associated site columns become list columns. Is there a way to prevent this?
So you want to retain the site columns as site columns in the new site collection correct?
You'd want to create a feature that creates the site columns (and content type) and then creates the list with the associated (content type) site columns. I include content type because if this is going to be used across several site collections, at some point someone is going to want that data rolled up. Leveraging a content type will help with that.
Managed metadata might be an option as well.