Each possibility suggested before has some pros and cons
* New section where solutions are public
The problem with this is if you get points for solving these problems, a lot of user will just submit all of the problems without even understanding the solution. But if you don't get points, it's not much different than putting these problems in tutorial, still great for "bundling" purpose though (so they don't split between classical-tutorial).
* A rewording of description, and a problem code that doesn't link immediately to a 'solution'
I think this is good, but it requires some work (more so if you migrate the entire contest). Rewording a mostly straightforward problem is not easy either (many encryption problem).
* Change constraints to make a new problem, harder, so that public solutions won't pass
Some problems already have very good constraint that expanding them would lead to problems like biginteger or I/O optimization, which is totally unnecessary to make the problem harder. Also, some solutions are already very good that no matter how you increase the difficulty, the official solution would pass.
* Modify them as challenge problems, so 'public' solution will give few points, and good ones give real points
This is good especially for the competitive minded. I suggest everything equal or worse than the official solution gives 0 point, so only better solution can get points. However, this requires even more work from the problem setter than just rewording.
* Do nothing
It's ok to do nothing, but this encourages more cheaters (there are already a lot of them, but still).
Regardless of the choice, I think it's better to create a new section for contest problems. It makes it easier to find other problems in the contest, and also not clogging up the classical section with contest problem (not that there's anything wrong with it, but I prefer if the problem setter creates the problem himself). Other than what Francky posted above, I have some other suggestions:
*Make it self-sustaining
Basically user can add test data for the problem if there is at least an accepted solution that will not get accepted with the new test data (kinda like codeforces contest). This saves a lot of trouble for the problem setter. Implementing it might be hard though, since the site might have to be rebuilt to be able to do this. The other problem with this is if the official solution is not 100% correct, but that can be taken care of somewhat easily.
*Only accepted user can see the solution
But if the solution is already available somewhere why would this matter? Well for this to be effective than a difficulty increase might be necessary so that the official solution won't pass (this brings the same problem as of the earlier suggestion)
While the suggestion by all the people here is good, implementing it might not be so easy, especially for older problems. So at the end of the day, this might be up to the admins to decide.