Mumps, 80
r a q:'(a?1A0.1".") f i=$A(a)+1:1:$S($A(a)<91:90,1:122) {w $C(32,i) w:a["." !}
Not such a modern language ;) I'm sure there's a bit of optimization space left..
Explanation:
r a
read console input into a
q:'(a?1A0.1".")
pattern match to follow 'wrong input rule'
f i=$A(a)+1:1:$S($A(a)<91:90,1:122) {w $C(32,i) w:a["." !}
basic for loop from the ascii value of the first character of input ($A(a)) in steps of 1 to either 91 (lower case) or 122 (upper case) output, and conditional output of newlines (!)
tests:
USER>d ^golf
e. f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
USER>d ^golf
r s t u v w x y z
USER>d ^golf
e.
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
USER>d ^golf
hallo
USER>
(you'll need a mumps runtime env, ie Caché to run this this)
edit: bold heading