Case classes, I believe, have a companion object with an apply method build for them, so you can get it down to:
case class Foo(bar: String, foo: String = "hello")
val f1 = Foo(bar = "Hey there")
val f2 = Foo(foo = "Hey there", bar = "Hello")
val f3 = Foo("Hey there")