Consider this analogy:
A pure chemist discovers a compound with certain novel catalytic properties and publishes the results.
A chemical engineer is working on the problem of storing hydrogen for onboard fuel cells then uses these results to come up with a way to store hydrogen in a non-volatile way.
A computer scientist working in theoretical computer science comes up with a data structure and associated algorithms for sharing files in a network.
A software engineer uses the algorithms to solve a problem in mobile computing.
Just as the pure chemist is not doing chemical engineering, the theoretical computer science is not doing software engineering.