is that difference only with the letter "e"? If yes, why can't it be decided that some people pronounce it as "je" (like they do in Russian, they just write "е" and not "йе") and some other people pronounce it as "e", and keep a single way of writting?
There are some more differences...
In 12th century so called "new dialects of Serbian/Croatian language" are devided over different reflexes of old vocal "jat" (capital letter "Ѣ", small letter "ѣ" in Cyrillic, or Ě / ě in Latin) into: ekavian, iyekavian and ikavian variant. Ekavian reflex is almost always "e" (sometimes it is "i"), ikavian reflex is always "i", and iyekavian reflexes are in general "ye" or "iye", but often "e" and rare "i".
After 12th century there some consonant changes was happened. When iyekavian reflex "ye" stayed after consonants 'l' or 'n', string "lje" (lye) or "nje" (nye) became two, not three volwes and "lj" and "nj" was not anymore "l+j" or "n+j", but "lj" and "nj" as soft "l" and "n".
So, differences became bigger, but not so big. Ekavians and iyekavians are closer between themselfs then with any other language speakers. For example, when iyekavian Croat from Zagreb or iyekavian Serb from Banja Luka talks with ekavian Serb from Belgrade, they will not have any problem in communication.
However, in writting systems there are some differences. Not only "mleko-mlijeko", but, for example, word for "notepad" in ekavian variant is "beležnica", but in iyekavian it is "bilježnica". Old form was "bělěžnica" (before "jat" transformation, after other changes in language). Ekavians changed "ě" into e, but iyekavians changed first "ě" into 'i' and second into "ye". As /j/ made 'l' soft, "lj" combination dosn't represent two volwes, but one. Around 20.000 lexemes (and around 200.000 forms/words) are affected with "jat" transformation.
Vuk Karadzic and Ljudevit Gaj sancionied only ekavian and iyekavian, but not ikavian. So, today Croatian and Bosnian have only iyekavian varian (a lot of Croats and some of Bosniaks are ikavian) and Serbian has iyekavian and ekavian.
or the other way around, always write the "j", but some people not pronounce it.
having two different writting systems just for that (which means four different writting systemns in total) seems unjustified;
There are a lot of possibilities for solving that problem. However, you and me are not the persons who are making those decisions. Also, I think that a lot of Serbian linguists don't think a lot about complicated situation with standards. A lot of them would use Cyrillic or Latin (or both if they don't care about alphabet) and one dialect. Ortography of Serbian Language is written only in Cyrillic in two variants (ekavian and iyekavian)...
The other question is that Serbian (Croatian and Bosnian) language have (with Finish and, I think, Estonian) the most phonetic alphabets. This is two centuries tradition of Serbian language and I am the first who would be against morphological writing system (as well as other linguists). Morphological solution is introduction of "jat" into ortography (Ěě in Latin, Ѣѣ in Cyrillic), but a lot of Ekavians would not know where to put it (not all 'e' came from 'jat'); actualy, only Ekavians with high linguistic education know where to put 'jat' and where not to put.
About other way, I said that Karadzic's nazi regime tried to do that.
I can say that cultures are complicated. They are not based on bits and formal logic. Hindi and Urdu are the same linguistic language, as well and Serbian, Croatian and Bosnian. However, those are different cultures; and all of that cultures has set of their own rules. 10 million Serbs has four writting systems. But, 500.000 of Lusatian Serbs has two writting systems :) Or, almost 5 million inhabitans of Papua New Guinea has around 800 different (!) languages!