My suggestion is to make terrain improvements, mostly roads and railroads, cost gold. This could also be applied for irrigation and mines.

Normally I like to play game with high costs of technology in order to have time to adapt my nation to the new advance. So the game takes a lot of turns; enough turns to connect all the country with roads and irrigate it, even using settlers. So, since in early games gold is scarce, making this improvements cost gold would give more importance to strategically build improvements, like roads linking important routes, irrigation near cities that we want to grow.

Railways would have a higher cost, because of its importance. Countries that have a small amount of gold, would build roads, unless they want to invest in railways. Historically railways were very important, but not all the nations built it once they were "invented", because their high cost.

Pillage would give us a percentage of gold in return. Nations with improve terrain would try to defend it and, in the other hand, pillage enemies would make more sense. If it cannot be conquer, you may try to pillage, because, at least, you will receive gold and the enemy will need to pay to build it again. Barbarians (and players who act like barbarians) would take this strategy, sometimes, instead of conquer cities.

The gold would be discounted from the treasure since the work is finished. At the same time, the work wouldn't finish if there is a lack of gold, making the worker eternally working (and a user message could be display) until there is gold to pay the job or the player give up and put the worker building anything cheaper, for example.

Historically, I thing that this feature make sense and it would give more importance to the economic factor. By default, the costs of terrain improvements would be 0, but it could be change in the options. Probably is a hard feature to implement but here is the suggestion anyway.

Nice idea. I think there should be one server setting to control the overall cost, and individual factors in the ruleset for each of the improvements. Since improvements will be defined by rulesets rather than hard-coded in the future, that probably wouldn't be too hard to implement.