Haskell has newtype for this purpose, with the benefit that the compiler removes the added overhead of the additional data type.
Given the list of restrictions here: http://docs.scala-lang.org/overviews/core/value-classes.html
It seems to me that you'd have to be fairly careful to have any confidence your not instantiating classes for them.
Do you know if there are any compiler flags or other way to know if your value classes are working as expected?