Sure.
The DropDownExtensions can go anywhere, really. You’ll just have to add a ‘using …’ wherever you want to reference it in your code. The other classes can also go anywhere. They are all very ‘view’-related, so put them with the other view-related code.
As far as examples, check out this post, and scroll halfway down: https://wilsonhut.wordpress.com/2010/09/14/a-better-toselectlistitems/

If you want to add a BLANK entry to the beginning, just pass true as the second parameter of the GetSelectListItems method.
If you want to add something specific, you could easily create an overload of GetSelectListItems that would “yeild return” your thing before “yield returning” the other items… or add a method to DropDownViewModel to allow adding DropDownItems (you’d have to make _dropDownItems an IList rather than an IEnumerable)

OR… just before calling ToDropDownViewModel, get the items the way you want them:
So instead of:
viewModel.StateList = _repo.GetStates().ToDropDownViewModel(…);
Use this:
viewModel.StateList = (new []{new State(“East Oklahoma”, 51)}.Concat(_repo.GetStates())).ToDropDownViewModel(…);