From my own experience maintaining legacy systems and then re-implementing them — strive for a system that future maintainers will be able to refactor instead of wanting to replace it, whatever that entails. Even if all of what you write will be refactored away, you've accomplished something if they're able to continue using the code base in some form.