Some wise and good people are saying this means you must push the model at least 2" or choose not to push them. We’ve been playing this as up to 2", you get to choose when you use it.
The rule does not say “push it either 0 inches or 2 inches and nothing in between”, it says “push that model up to 2 inches.”
(If somebody says “I will pay up to $5 for that item”, that does not mean “I will either pay nothing or I will pay exactly $5.” It means “I will pay somewhere between $0 and $5, inclusive.”)
So, let’s look at Bulldoze as worded and break it apart.
1. “… it CAN push…” This is the first key word, declaring that you may choose to push - or not.
2. “… it can push that model UP TO 2"directly away from it.” This is the second important wording, where it is clear that you may push that enemy model any distance of your choosing, up to and including 2". This should be clear from the fact that the rules for a push clearly indicate all situations that will stop a model being pushed its desired distance.
Similarly, it would be redundant to say that you CAN push the model and then provide the additional decision of pushing the model a binary option of either 0 or 2 inches.
This is the correct reasoning. For a few years, I thought Full Advance in hyper-aggressive meant I had to move full SPD from a similar line of reasoning as OP. However, “up to” is essentially just “less than or equal to” in the context of this game