The problem is what do you do if someone misses weight on the way to the octagon? scrap the fight?
Then people will say "okay do it a few hours before", which will cause fighters to still try to cut weight.
If it's not too much (roughly Liddellianenko's idea) massively take away from his purse. If it's too much, formally disqualify that fighter (=loss on his record) and informally tell him "So you want to fight at Bellator like Anthony Johnson? Just tell us, there is no need screw our show!" I guess fighters will learn pretty fast then.
Its not ideal, but weigh on the day before the fight has been about for many many years, and will be about for many many years to come. Just gotta accept its part of the fight game.
There have been tons of changes in the rules since UFC 1, the last change being at UFC 138, so there is no reason why it wouldn't be possible to get rid of that dumb weigh in the day before and replacing it by same day weigh-ins.