A family of Microsoft relational database management systems designed for ease of use.
This is not a problem or an issue. It is how it works.
You have correctly described what happens, but have not said what you expect otherwise.
% complete is actual duration/total duration.
Total duration is actual duration + remaining duration.
If you type in a % complete for a task which does not yet have an actual start, MSP must have a date/time to assign as the actual start, so that the actual duration can start somewhere..
The only date/time that it has is the scheduled or planned start, so it uses that, and it makes no difference if the scheduled or planned start is in the past or the future. You can change it if the actual start date/time was something else (tracking table).
You seem to be wanting MSP to decide that the remaining duration should be changed, or that the actual start should be something other than the scheduled or planned start, based only on the % complete. How can MSP possibly know that? How can it know what the actual start date/time was, if you don't type it into the actual start field in the tracking table?
There is no need t type in a % complete, and also doing it doesn't work. It is best to type in the actual start date/time and the actual duration (both must be in the past because they are "actual", and re-estimate the remaining duration. Let MSP calculate the % complete.
Any help?