What are the most effective methods/strategies which will help in the setting of realistic deadlines within projects?
First you need to define what you mean by realistic. If you were to do the same project 1,000 times, you would end up with quite a range of finishes. For example, a project could end with finishes that range from 40 days to maybe as high as 100 days. That entire range is realistic since it was observed. Or, realistic might mean something that has a higher probability than 1/1000. But my point is, how you and your stakeholders define realistic is very important and should be your first strategic action.
Second, use estimating techniques that allow for you to arrive at that range with the probabilistic density that sits on top of it. Avoiding allowing estimators to use single point estimating. A team of estimators need to look at a work package and understand what might result if everything ran perfectly and what might result if trouble was around every corner and what will most likely result. Use historical stats if you have it. And run a simulation so that you can see the effects of on the total project if you ran it 1,000 times. Then, using your definition developed in step one, you can pinpoint the interval that represents realistic to you and likely represents the highest probability.
Third, understanding that distribution will allow you to educate your stakeholder and set appropriate expectations, that despite choosing the highest probable finish, there is still natural risk of exceeding that time frame.
If the business's preference is to have fixed time for a project, then I would use a method that allows for prioritized and flexible scope, so that when we reach the set deadline there is better chance we have 80% of the features 100% done, instead of 100% of the features, 80% done. I am assuming also that money/resources is also fixed.
Agile methodologies are great for this (ie. Scrum, Kanban)
These methods would also allow you to better predict what set of features would be available at the deadline if the team is allowed to find their rhythm.
The biggest suggestion I would make is to ask the people doing the work to make the estimate. When someone makes an estimate then they have a vested interest in living up to what they stated.
On the other hand when the estimate is made by someone far, far away with no input from the team the results are often disastrous. Think back to a time when a boss cam to you at 3:00 PM and said "Marketing just told a customer we would have this change done by 9:00 AM tomorrow" and it was a big, multi-day effort. Did you feel like working all night on it while the marketing guy went out that evening to a party?