I use Outlook. I sort my NAs (Outlook tasks) chronologically by "due date." For those NAs that have a due date that is a due BY date, I make the Outlook due date, say, a week before (or whatever time I may need in advance to really get it done well). In the Notes field of the Outlook task, I put "due (insert real due date)." That way, I make sure that I see the NA near the top of the list with enough time to do it, but I also know at a glance (without digging through tons of material) what the *real* due date is. Not all of my NAs need the same amount of time to complete (could be just a day; could be 3 weeks), so, if I only use the real due date, I don't know how far down the NA list to keep looking for things that I might have to start today.
If I can't get to the item 7 days (or whatever) in advance, I know exactly how long I have until I really have to get it done. In most cases, I will just advance it by 1 day and try to get to it again the next day. I have found this approach useful for me. YMMV.
I'm not smart enough to know how using both "start date" and "due date" in Outlook will impact me. I just haven't thought to experiment with it. Maybe I should, and it can accomplish the same thing.
I hope this helps.