There's a few tips to mention here.
First, ggplot reads the colors named in aes() as factors in alphabetical order, as opposed to as color names, which causes them to seemingly print out of order (and seemingly with the wrong color) if you do not list the colors in said order. For example, the ggplot2 package will interpret and plot "blue","green","yellow","orange" as "blue","green","orange","yellow". In addition to this order change, it won't use the values you supply that way as the colors for plotting; it uses default colors.
There are a few things you can do to fix that. One way is to use scale_colour_manual to clarify a specific order and value for your colors, like this:
ggplot(data=vv) + aes(x=year) +
geom_line(aes(y = a1, colour= "blue")) +
geom_line(aes(y = a2, colour= "green")) +
geom_line(aes(y = a3, colour= "yellow")) +
geom_line(aes(y = a4, colour= "orange")) +
scale_colour_manual(values=c("blue"="blue","green"="green",
"yellow"="yellow","orange"="orange"),
breaks=c("blue","green","yellow","orange")) +
scale_x_continuous(breaks=seq(2000, 2009, 3)) +
expand_limits(y=0)
Output:

If you don't need a legend, you can also just place the color argument outside of the aes(), as @tekrei explains. For other customization options, try ?scale_colour_manual for more help.