Golfscript, 22 21 bytes
#Golfscript, 22 21 bytes
Try it online!
-1 byte thanks to careful final redefining of the n
built-in.
{.n>{}{'
'\}if:n}%:n;
Explanation (with a slightly different version):
{.n>{}{"\n"\}if:n}%:n; # Full program
{ }% # Go through every character in the string
.n> if # If ASCII code is greater than previous...
# (n means newline by default, so 1st char guaranteed to fit)
{} # Do nothing
{"\n"\} # Else, put newline before character
:n # Redefine n as the last used character
:n; # The stack contents are printed at end of execution
# Literally followed by the variable n, usually newline
# So because n is by now an ASCII code...
# ...redefine n as the new string, and empty the stack